2012-03-12 15 views
5

Nella mia app, ho un pulsante chiamato EXIT, quando l'utente fa clic su questo, voglio terminare tutte le attività della mia app, che sono nello stack, e andare all'attività home predefinita o all'attività di tutte le app .Come accedere alla schermata iniziale predefinita di Android programmaticamente?

ho scritto il seguente codice nel mio onClick():

Intent intent = new Intent(Intent.CATEGORY_HOME); 
startActivity(intent); 

ma mi dà il seguente errore nel logcat:

03-12 11:22:18.279: ERROR/AndroidRuntime(308): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.category.HOME } 

Così che cosa devo fare per raggiungere questo obiettivo? Ho bisogno di qualche configurazione nel manifest o il mio approccio è sbagliato?

+1

possibile duplicato di [Andare alla schermata iniziale di programmazione] (http://stackoverflow.com/questions/3724509/andando-a-casa-schermo-programmaticamente) –

risposta

13

Prova questo:

Intent homeIntent= new Intent(Intent.ACTION_MAIN); 
homeIntent.addCategory(Intent.CATEGORY_HOME); 
homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(homeIntent); 
+1

Sta finendo tutte le attività dal compito dello stack? –

+1

No. Questo codice vi porterà alla schermata principale. Ti ho appena dato il codice per andare alla schermata iniziale predefinita. (Come vedo nel tuo log, stava facendo eccezione). Per completare tutte le attività della tua applicazione, dovrai scrivere una logica che dovrebbe essere chiamata prima di questo codice. – AndroDev

+0

Intent.FLAg_ACTIVITY_CLEAR_TOP lo farà, poiché ogni attività si trova in cima all'attività di casa. –

3

utilizzare il codice seguente per lanciare schermata iniziale:

Intent intent=new Intent(this, HomeClass.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
Problemi correlati