2011-09-20 20 views
9

Ho un'attività chiamata MainActivity. Questa attività avvia una notifica con un PendingIntent che apre questa MainActivity.Attività Android singleton

Quindi, per chiudere l'applicazione, devo fare clic due volte sul pulsante Indietro. Mi piacerebbe impostare un'attività come singleton. Ho provato a impostare singleInstance o singleTask su manifest ma questo non funziona.

risposta

15

singleInstance e singleTask non sono consigliati per l'uso generale.

Prova:

android:launchMode="singleTop" 

Per ulteriori informazioni si rimanda alla launchMode section della documentazione elemento attività.

Oltre al riferimento precedente si dovrebbe anche leggere tasks and back stack

4

Se avete bisogno di tornare alla vostra applicazione senza creare una nuova istanza della vostra attività, è possibile utilizzare gli stessi filtri intento di Android utilizza quando si lancia l'applicazione :

final Intent notificationIntent = new Intent(context, MainActivity.class); 
notificationIntent.setAction(Intent.ACTION_MAIN); 
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 

come l'intento è stato creato per aprire la vostra attività dalla barra di notifica è lo stesso di Android utilizzata per lanciare la vostra applicazione, l'attività aperto in precedenza verrà mostrato invece di crearne uno nuovo.