2010-12-02 16 views
5

Cuando hago clic en la notificación en la barra de estado, se inicia una actividad pero el comportamiento es extraño. Si mi aplicación está en primer plano y hago clic en la notificación, la intención de notificación se activa una vez. Si mi aplicación está en segundo plano, el intento de notificación se dispara dos veces. Si salgo de la aplicación (es decir, todas las actividades han aparecido presionando el botón Atrás), la intención de notificación se activa una vez. ¿Alguien puede explicar este comportamiento? El fragmento de código es el siguiente:notificación de android inicia la misma actividad dos veces

_notification = new Notification(icon_id, "Ticker Text", System.currentTimeMillis()); 
_showActivityIntent = new Intent(); 
_showActivityIntent.setAction(MyActivityName); 
_showActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK + Intent.FLAG_ACTIVITY_NO_HISTORY); 
_showActivityPendingIntent = PendingIntent.getActivity(context, 0, _showActivityIntent, 0); 
_notification.setLatestEventInfo(context, "My title", "My text", _showActivityPendingIntent); 
_notificationMgr.notify(notificationId, _notification); 

Respuesta

9
_showActivityIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

probar esto. evitará múltiples instancias de la misma actividad. Puedes poner esto en el manifiesto también

+2

Lo intentaré, pero ¿puedes explicar por qué la misma actividad se lanza dos veces? – pankajagarwal

+0

http://developer.android.com/guide/topics/fundamentals.html#acttask. si lees la documentación, dice claramente lo que hace cada bandera. – Varun

+0

Pero, ¿por qué se lanzan los 2 en primer lugar? Esto parece una solución alternativa, no una solución. –

Cuestiones relacionadas