Cómo reiniciar la alarma si la aplicación se cierra forzada en android

Las alarmas establecidas por mi aplicación con AlarmManager se borran si

  1. La fuerza de usuario cierra mi aplicación en la configuración.
  2. Alguna aplicación asesina de tarea mató automáticamente mi proceso de aplicación.
  3. Android mismo mató a mi aplicación, debido a la necesidad de memoria para aplicaciones frontales.

Por favor, dígame cómo lo detecto? Sino cómo configurar mis alarmas para que todos estos casos no afecten a mis alarmas.

La fuerza de usuario cierra mi aplicación en la configuración.

Sí, esto borra las alarmas.

Alguna aplicación asesina de tarea mató automáticamente mi proceso de aplicación.

Esto no elimina las alarmas de ninguna versión reciente de Android.

Android mismo mató a mi aplicación, debido a la necesidad de memoria para aplicaciones frontales.

Esto no borra las alarmas.

Por favor, dígame cómo lo detecto?

Mantenga un registro de cuándo ocurrió la última alarma (por ejemplo, en SharedPreferences ). Cuando se ejecuta el código (por ejemplo, se LAUNCHER actividad LAUNCHER ), compruebe la hora de la última alarma. Si fue hace mucho tiempo, sabes que tus alarmas fueron borradas, y por eso tienes que reprogramarlas.

Sino cómo configurar mis alarmas para que todos estos casos no afecten a mis alarmas.

Esto no es posible. Hay pocos casos en los que las alarmas realmente se borran (reinicios y parada de la fuerza), y no hay nada que pueda hacer para evitar que se borren las alarmas en esos casos.

@CommonsWare Como se ha dicho por usted "Hay pocos casos en los que las alarmas realmente se borran (reinicios y Force Stop), y no hay nada que puedas hacer para evitar que tus alarmas se borren en esos casos".

Pero siento que ambos pueden ser manejados:

Reboot: Acción de Intención android.intent.action.BOOT_COMPLETED

Force Close: Se puede manejar si la aplicación se comunica con Some Server, y allí se puede integrar GCM que eventualmente puede iniciar su aplicación, si es asesinada. Como en onReceive:

 final Intent notificationIntent = new Intent(context, YourActivity.class); notificationIntent.setAction(Intent.ACTION_MAIN); notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

Para iniciar su aplicación.

Déjame saber si estoy equivocado.

  • Android AlarmManager no se dispara después de la actualización de Google Play
  • Android AlarmManager activa cada "ronda" 10 minutos
  • Crear y cancelar varias alarmas configuradas con AlarmManager
  • Android AlarmManager setExact () no es exacta
  • Cómo programar una tarea mediante el Administrador de alarmas
  • Android: ¿Cómo comprobar el correo electrónico en un momento específico con AlarmManager?
  • Evitar que la alarma de repetición ocurra el fin de semana
  • ¿Cómo configurar una alarma de repetición exacta en API 19 (kitkat)?
  • AlarmManager no funciona en varios dispositivos
  • Cancelar un AlarmManager pendienteIntent en otro pendienteintent
  • ¿Cuál es la definición de dormido para un dispositivo Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.