2010-04-26 14 views
26

La prima attività caricata nella mia applicazione è un'attività di inizializzazione e una volta completata carica una nuova attività. Voglio assicurarmi che se l'utente preme 'Indietro', va direttamente al Launcher e non alla schermata di inizializzazione. Nota a margine, è questo anche l'approccio migliore, o sarebbe meglio farlo con una specie di Intent Flag?Fine chiamata() Dopo aver avviato una nuova attività

È corretto chiamare finitura() dopo la chiamatastartActivity() sulla nuova attività?

onCreate() { 
... 
startActivity(new Intent(this, NextActivity.class)); 
finish(); 
... 
} 

Sto ancora prendendo in tutto il metodo di 'Message Queue' di fare le cose in Android, e la mia ipotesi è che la chiamata startActivity() e poi finitura() dal mio primo di attività onCreate() registrerà ogni rispettivo messaggio nella coda dei messaggi, ma terminerà l'esecuzione di onCreate() prima di passare all'avvio dell'attività successiva e alla fine del primo. È una comprensione corretta?

risposta

28

Probabilmente si dovrebbe semplicemente usare la bandiera noHistory sull'attività nel vostro manifest.xml

+0

Grazie! che realizza esattamente ciò che volevo fare. Sono ancora interessato, tuttavia, a sentire se c'è qualcosa di intrinsecamente sbagliato o di cattiva forma nel mio approccio precedentemente descritto, e se la mia comprensione di come i messaggi sono gestiti in coda è corretta. – stormin986

+12

Il tuo codice (inizio e fine) è assolutamente corretto e una tecnica che viene spesso utilizzata. – hackbod

+0

Grazie hackbod e jqpubliq! – stormin986

Problemi correlati