Bueno, en primer lugar, tienen compinches 😀
La mayoría de las aplicaciones en su teléfono vienen con cosas llamadas servicios . Estos se ejecutan en segundo plano incluso cuando la aplicación principal no se está ejecutando en primer plano o está cerrada. Estos servicios son responsables de verificar las actualizaciones que, cuando están disponibles, se transmiten a todas las aplicaciones que escuchan la actualización específica.
- ¿Existe una aplicación que pueda usarse para crear encuestas personalizadas para un grupo de WhatsApp?
- ¿Por qué todavía no ha habido un "seguidor rápido" de Groupme?
- ¿Me está escuchando Facebook a través del micrófono de mi teléfono?
- ¿Qué características no podré usar si mi teléfono no viene con un giroscopio?
- ¿Cuáles son las mejores aplicaciones de BlackBerry?
El desencadenante de la actualización puede ser diferente. El servidor en sí puede iniciar la sincronización o el servicio puede sondear constantemente las actualizaciones en el servidor. Pero la mayoría de las veces, el cliente estaría haciendo esto. En WhatsApp, un cliente (A) puede enviar un nuevo mensaje. El servidor recibe este mensaje y le permite al servicio del teléfono del destinatario (cliente B) saber que hay un nuevo mensaje.
Esto significa que incluso si la aplicación no se está ejecutando, el servicio de actualización puede despertarla cuando hay una actualización disponible. Pero estar cerrado por la fuerza es una cosa diferente. Estos compinches son poderosos, pero sucumben al cierre forzado. Este es el comportamiento preferido, porque el usuario fuerza manualmente el cierre de la aplicación, lo que indica que fue una decisión consciente. Él / Ella no quiere que la aplicación se actualice sola y quiere que permanezca muerta.
Como mencionó, forzar el cierre de su aplicación de notificación push detendrá el código que busca actualizaciones. Y como resultado, no publicará notificaciones sobre actualizaciones.
Para superar este problema, puede reiniciar la aplicación si por algún motivo la mata. En Android, implica la captura de excepciones que hacen que la fuerza se cierre a través de uncaughtExceptionHandler(){...}
y luego reinicie la aplicación con algo como:
…
Toast.makeText (getContext (), “¡Vaya! ¡Algo salió mal!”, Toast.LENGTH_LONG) .show ();
Administrador de AlarmManager = (AlarmManager) getSystemService (Context.ALARM_SERVICE);
manager.set (AlarmManager.RTC, System.currentTimeMillis () + 5000, intento);
System.exit (1);
…
Al hacerlo, se reiniciará la aplicación junto con el servicio de actualización. Las notificaciones push ahora comenzarán a funcionar nuevamente.