2011-09-20 13 views
9

Tengo una actividad llamada MainActivity. Esta actividad inicia una notificación que tiene un PendingIntent que abre esta MainActivity.Android Actividad singleton

Por lo tanto, para cerrar la aplicación, tengo que hacer clic dos veces en el botón Atrás. Me gustaría configurar la actividad como singleton. Intenté configurar singleInstance o singleTask para manifestar, pero esto no funciona.

Respuesta

15

singleInstance y singleTask no se recomiendan para uso general.

Probar:

android:launchMode="singleTop" 

Para obtener más información, consulte la documentación de launchMode section elemento de Actividad.

Además de la referencia anterior también debe leer tasks and back stack

4

Si necesita volver a su aplicación sin necesidad de crear una nueva instancia de su actividad, se pueden utilizar los mismos filtros intención como androide utiliza al iniciar la aplicación :

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); 

como la intención que ha creado para abrir su actividad desde la barra de notificaciones es el mismo que el utilizado para el lanzamiento de Android de su aplicación, se mostrará la actividad previamente abierta en lugar de crear una nueva.