12

Hola, he podido obtener una notificación para mi actividad y cuando el usuario hace clic en la notificación, la aplicación se reinicia. Sin embargo, solo quiero que vuelva a aparecer, no reiniciar. p.ej. es una aplicación web y quiero que aparezca en primer plano cuando el usuario selecciona la notificación ... pero no actualiza la página web. ¿Puedo atrapar este intento o estoy enviando el intento equivocado? Normalmente, si presiono el botón de inicio y hago clic en el icono de la aplicación, la aplicación pasa a primer plano y no se actualiza/reinicia. Entonces este es el comportamiento que quiero. Algunas ideas ?Notificación de Android reinicia la aplicación pero desea reanudar

String ns = Context.NOTIFICATION_SERVICE; 
NotificationManager mNotificationManager = (NotificationManager) 
              getSystemService(ns); 
//2.Instantiate the Notification 
int icon = R.drawable.notification_icon; 
CharSequence tickerText = "My App"; // temp msg on status line 
long when = System.currentTimeMillis(); 
Notification notification = new Notification(icon, tickerText, when); 
notification.flags |= Notification.FLAG_ONGOING_EVENT; 
//3.Define the Notification's expanded message and Intent: 
Context context = getApplicationContext(); 
CharSequence contentTitle = "Notification"; 
CharSequence contentText = "My app!"; // message to user 
Intent notificationIntent = new Intent(this, HelloAndroid2.class); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
                  notificationIntent, 0); 
notification.setLatestEventInfo(context, contentTitle, contentText, 
                  contentIntent); 
//4.Pass the Notification to the NotificationManager: 
final int NOTIFICATION_ICON_ID = 1; 
mNotificationManager.notify(NOTIFICATION_ICON_ID, notification); 

Respuesta

22

pongo esto en el manifiesto

android:launchMode="singleInstance" 

Esto solucionó el problema para mi. También this answer que no he probado que aluden a otras cosas de interés.

+0

¡Respuesta perfecta! –

4

Puede probar este FLAG_ACTIVITY_REORDER_TO_FRONT (documento describe exactamente lo que quiere)

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT

Intent notificationIntent = new Intent(this, HelloAndroid2.class); 
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
+2

Hola, gracias por responder Pongo esto en manifiesto, solucioné el problema android: launchMode = "singleInstance" también estas respuestas aluden a otras cosas de interés. Http://stackoverflow.com/questions/4047683/android-how- to-resume-an-app-from-a-notification y http://stackoverflow.com/questions/4047683/android-how-to-resume-an-app-from-a-notification – ozmike

7

Si usted tiene que evitar el establecimiento de su actividad para "SingleInstance", a continuación, establecer la intención de la notificación de la siguiente manera:

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
+0

Esto funciona para mí, gracias m8;) – pkdkk

0

recomendaría para establecer el Intent.FLAG_ACTIVITY_SINGLE_TOP bandera para esta situación particular, si se utiliza Android: launchMode = "SingleInstance" que afectaría el comportamiento cuando se llama a otros intentos en su aplicación, ejemplo usando Facebook SDK, SDK paypal etc ..

la explicación es simple aquí: link

+0

FLAG_ACTIVITY_SINGLE_TOP ya aparece como una respuesta, gracias de todos modos. – ozmike

Cuestiones relacionadas