2010-07-30 11 views
12

Quando avvio l'applicazione SMS con i seguenti metodi: tutto funziona fino al punto in cui viene inviato il messaggio. Quando invio il messaggio, non torna mai all'attività originale a meno che non premo il pulsante Indietro. Come posso avviare l'attività SMS e poi, una volta inviato il messaggio, mostrare l'attività principale?Torna all'attività dopo l'azione completata in Android?

Ecco come chiamo l'app SMS con risultato.

risposta

23

È possibile. Ho solo bisogno di aggiungere il seguente extra al tuo intento:

sendIntent.putExtra("exit_on_sent", true); 
+0

questo ha funzionato per me ... – arjoan

+1

Non funziona con l'app Hangout. – BoD

+0

Non chiama suActivityResult, ma torna all'app chiamante. – Proverbio

1

Non appena l'attività avviata è terminata, viene chiamato il metodo onActivityResult() nella prima attività. Ecco perché dovresti sovrascrivere onActivityResult() nella tua prima attività e gestire lì le attività che sono state completate.

+0

Lo faccio - tuttavia l'attività genitore non viene chiamata dopo l'invio dell'SMS. Mostra solo il thread di conversazione ma non torna all'attività principale. – hwrdprkns

1

Ti sei sbagliato, forse potresti non aver notato che sei tornato all'attività di chiamata. Devi fornire un codice di richiesta quando chiami un sottoattività. INVITE_COMPLETED suona un po 'come potrebbe rappresentare un codice risultato. I codici risultato come RESULT_OK e RESULT_CANCELED sono finali predefiniti della classe Activity. Se si utilizza

startActivityForResult(intent, MY_REQUEST_CODE); 

si può poi ignorare onActivityResult() e cattura che il codice di richiesta (che è auto definita nell'attività di partenza) lì. Ecco come appare:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == MY_REQUEST_CODE) { 
     if (resultCode == RESULT_OK) { 
     // do something useful 
     } 
    } 
} 
+0

C'è un modo per dire se un messaggio è stato inviato, però? Lo sto facendo e quando premo il pulsante Indietro dall'attività SMS, ottengo sempre Activity.RESULT_CANCELLED come risultatoCode, anche se non ho inviato l'SMS. C'è un modo per iniziare l'attività dicendogli di finire dopo l'invio? – karl

+0

@karl Ciao hai trovato la soluzione di quel problema ottengo lo stesso problema e bloccato per favore aiutami –

+0

No, non ho mai trovato una soluzione. Questo è stato quattro anni fa, però, e Android è cambiato molto, quindi potrebbe esserci una soluzione che al momento non esisteva. – karl

Problemi correlati