ver una registra quien puedo porque para pantalla llamadas llamada llama las entrantes entra cuando contestar configuracion celular blu aparecen aparece activa android android-activity notifications android-pendingintent

android - una - porque mi celular no registra las llamadas entrantes



Intención de reanudar una actividad previamente en pausa(llamada desde una notificación) (5)

Estoy desarrollando una aplicación que muestra una notificación al usuario. El objetivo de la notificación es facilitar al usuario el retorno a la actividad cuando el usuario está en otra actividad. Estoy usando este código en mi aplicación para crear y mostrar la notificación.

notification = new Notification(R.drawable.icon, "Notify", System.currentTimeMillis()); notification.setLatestEventInfo(this, "App name", "App message", PendingIntent.getActivity( this, 0, new Intent(this, Main.class), PendingIntent.FLAG_CANCEL_CURRENT)); notification.flags |= Notification.FLAG_ONGOING_EVENT; nManager.notify(0, notification);

Pero cuando el usuario toca la notificación, se inicia una nueva instancia de la misma actividad, en lugar de la que el usuario estaba utilizando antes.

Creo que esto tiene algo que ver con PendingIntent pero no puedo encontrar la forma de hacer que Intent para reanudar una instancia de la actividad previamente detenida en lugar de crear una nueva instancia.

Gracias.



Aparte de la respuesta correcta de @Jimix, cambiaría el PendingIntent de 0 a un valor distinto de cero como se comentó en otra answer . Por otro lado, hay un error conocido en versiones anteriores de Android que me llevó un par de horas desesperadas. La solución propuesta allí funcionó bien para que cancele el PendingIntent antes de enviar la notificación:

if (Build.VERSION.SDK_INT == 19) { getNotificationPendingIntent().cancel(); }


Descubrí cómo hacerlo. Agregué el siguiente código:

notifyIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

Ahora mi código se ve así:

notification = new Notification(R.drawable.icon, "Notify", System.currentTimeMillis()); notification.setLatestEventInfo(this, "App name", "App message", PendingIntent.getActivity(this, 0, new Intent(this, Main.class) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP), PendingIntent.FLAG_CANCEL_CURRENT)); notification.flags |= Notification.FLAG_ONGOING_EVENT;


Esto me ayuda a android:launchMode="singleInstance"

<activity android:name="com.mosis.automatskidnevnik.MainActivity" android:launchMode="singleInstance" android:label="@string/app_name" > ...


Resolví el mismo problema configurando

android:launchMode="singleTask"