Actividad de reanudación de notificaciones
Lo sé, hay varias preguntas de este tipo, pero he intentado todo y todavía no funciona.
Ok, para mi aplicación; Tengo una Actividad. En esta actividad hay 4 fichas y la cuarta contiene una lista y un botón de grabación. Cuando estoy empujando registro, hay un receptor de GPS que se inicia. Después de obtener un nuevo valor de gps, lo empuja en la lista.
Esto funciona hasta ahora!
Si hago clic en el botón Inicio sigue funcionando, si lo presiono a continuación. Se reanuda esa actividad con la pestaña específica abierta y la lista todavía mantiene los listitems y el oyente gps sigue activo.
Esto también funciona bien!
Ahora quería agregar una notificación, que muestra el número de valores de gps de la lista como .number. En cada nueva señal GPS, se actualiza el icono de notificación con el nuevo número. Esto no es ningún problema, pero la acción de hacer clic en la notificación totalmente atornilla mi aplicación.
El código real se ve así:
- Uid ... no tiene android.permission.UPDATE_APP_OPS_STATS
- Notificación No se muestra
- ¿Es posible recibir notificaciones (por ejemplo, correo electrónico) cuando la Consola para programadores de Google Play recibe un bloqueo o una ANR?
- Crear notificación con BroadcastReceiver
- ¿Cómo crear notificaciones que no desaparecen cuando se hace clic en Android?
public void callNotify(String text) { notif = new Notification(); Intent contentIntent = new Intent(this, tabactivity.class); contentIntent.putExtra("fid", this.specialvalue); contentIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); notif.icon = R.drawable.icon; notif.setLatestEventInfo(this, getString(R.string.app_name), text, PendingIntent.getActivity(this.getBaseContext(), 0, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT)); notif.ledARGB = Color.RED; notif.ledOnMS = 200; notif.ledOffMS = 200; notif.flags = Notification.FLAG_SHOW_LIGHTS | Notification.FLAG_ONGOING_EVENT | Notification.FLAG_ONLY_ALERT_ONCE; notif.number = notifyNumber; mNotificationManager.notify(notifyNumber, notif); } public void updateNotify(String text) { notifyNumber++; notif.number = (int) (notifyNumber / 2); Intent contentIntent = new Intent(this, tabactivity.class); contentIntent.putExtra("fid", this.specialvalue); contentIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); notif.setLatestEventInfo(this, getString(R.string.app_name), text, PendingIntent.getActivity(this.getBaseContext(), 0, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT)); mNotificationManager.cancel((notifyNumber - 2)); mNotificationManager.notify(notifyNumber, notif); }
Por lo tanto, el updateNotify () se llama en una nueva señal GPS. Y el callNotify () es el primero, antes de que comience el oyente de los gps. Y, sí, el notifyNumber / 2 fue mi intención, porque trabajo con ese número más.
Si lo compile de esta manera, y haga clic en la notificación, se abre una NUEVA tabactivity en la primera pestaña. Si hago clic en ese momento, tengo muchos errores (la base de datos sigue abierta, los nullpointers y otras cosas). Creo que porque se inicia una nueva tabactivity y la otra aún está abierta, porque puedo ver el oyente gps sigue funcionando.
Por lo tanto, lo que quiero es, que puedo hacer lo siguiente: Abro mi aplicación, ir a la tabulación, abrir la pestaña 4, haga clic en registro. Si hago clic de nuevo, debería ocultar la aplicación, también, si solo hago clic en el botón de inicio. Pero hay una notificación. Si hago clic en esa, debería mostrar la actividad oculta de nuevo y eso es todo. Entonces, ¿qué estoy haciendo mal allí? Pensé, los indicadores FLAG_ACTIVITY_CLEAR_TOP y FLAG_ACTIVITY_SINGLE_TOP deberían resolver el problema?
- ¿Cómo obtener la identificación única del usuario de One Signal en Mobile?
- El sonido de notificación no funciona para api 10 android
- Android Muestra una notificación en la barra de estado sin una vista ampliable
- No hay sonido de notificación al enviar notificación de firebase en android
- Notificación regular no mostrará el botón Cerrar X en android
- Recibe notificación push de Android aunque la aplicación esté cerrada
- Notificación no mostrada cuando setGroup () se llama en Android KitKat
- La notificación push de Google Play para la actualización de la aplicación no se ha enviado con fiabilidad. ¿Me estoy perdiendo de algo?
Lo que está ocurriendo aquí es un poco confuso, así que soporta conmigo aquí.
FLAG_ACTIVITY_SINGLE_TOP
acuerdo con los documentos If set, the activity will not be launched if it is already running at the top of the history stack.
Por lo tanto, si la actividad actual no está en la parte superior de la pila de historiales, se volverá a iniciar.
FLAG_ACTIVITY_CLEAR_TOP
nuevo de los documentos If set, and the activity being launched is already running in the current task, then instead of launching a new instance of that activity, all of the other activities on top of it will be closed and this Intent will be delivered to the (now on top) old activity as a new Intent.
De forma predeterminada TabActivity
siempre se abrirá a la pestaña 0, puede usar setDefaultTab
para cambiarlo por código. Cada Tab en el TabHost es también un nuevo Intent
Si lo compile de esta manera, y haga clic en la notificación, se abre una NUEVA tabactivity en la primera pestaña. Si vuelvo a hacer clic en ello, tengo muchos errores (la base de datos sigue abierta, nullpointers y otras cosas).
Esto está ocurriendo porque creo que la Intent
actual es tab4 (en realidad es su # 3, 0,1,2,3) y su notificación es traer la tabactivity.class
. Dado que no está activo o encima de la pila, cada acto encima de él está cerrado, incluyendo tab4.
Por lo tanto, lo que quiero es, que puedo hacer lo siguiente: Abro mi aplicación, ir a la tabulación, abrir la pestaña 4, haga clic en registro. Si hago clic de nuevo, debería ocultar la aplicación, también, si solo hago clic en el botón de inicio. Pero hay una notificación. Si hago clic en ese uno, debe apenas mostrar la actividad ocultada otra vez y eso es él. Entonces, ¿qué estoy haciendo mal allí? Pensé, los indicadores FLAG_ACTIVITY_CLEAR_TOP y FLAG_ACTIVITY_SINGLE_TOP deberían resolver el problema?
Estás confundiendo lo que hacen las banderas y lo que ocurre con las teclas de home
y de back
. Golpear a home
ocultará su actividad y la notificación debería funcionar bien con esas banderas (una vez que solucione el problema que mencioné anteriormente). Cuando back
, Android termina la Activity
actual y la quita de la pila. Puesto que no hay nada bajo él, usted se fuerza para relanzar de rasguño cuando usted presiona la notificación.
- No se puede acceder a localhost desde un dispositivo Android
- ¿Cuál es la función de aapt.exe en android?