2012-04-20 12 views
5

Soy un novato en Android, así que tenga paciencia conmigo. Mi actividad principal crea y alarma en el administrador de alarmas que supuestamente debe disparar en un tiempo específico, mi actividad principal también crea el receptor de difusión que supone recibir la intención de que la alarma se dispare, todo funciona bien hasta que el administrador de tareas mata mi aplicación. He revisado la lista PendingIntent en el AlarmManager y verifico que mi alarma está siendo borrada del Alarm Manager, intento agregar servicio y registrar la alarma desde el servicio, tengo rojo que tal vez porque mi IntentFilter del receptor de Broadcast es definido en el código y no en el manifiesto que muere después de que se mata el proceso de la aplicación, y estoy atascado en este tema durante dos semanas :-(, con gran confusión, ¿mi diseño está equivocado?La alarma en el AlarmManager se borra cuando se mata el proceso

Aquí están mis necesidades:

  1. que la alarma va a ser muy fiable, incluso si la aplicación se mata o incluso si el teléfono está reinicio.
  2. lo mismo va para el receptor de radiodifusión.

gracias de antemano,

Respuesta

6

Si el usuario de la tarea-kills o de fuerza-detiene su aplicación, las alarmas no son registrados. Y, en Android 3.1+, nada de su aplicación se ejecutará nuevamente hasta que el usuario inicie manualmente una de sus actividades.

No hay nada que pueda hacer al respecto, salvo hacer todo lo posible por escribir una aplicación de alta calidad que el usuario no necesite o desee forzar y detener.

+0

¿qué tal otra .apk que reinicia los primeros WatchdogService y viceversa? no es ético pero ¿funcionaría eso? – n00b

+0

para ser claro, ¿esto solo proviene de un * usuario * iniciado por la fuerza de matar? si el sistema mata mi aplicación (por ejemplo, debido a una condición de poca memoria temporal), ¿debería esperar obtener la alarma más tarde? – Michael

+2

@Michael: la terminación normal del proceso, como la eliminación de memoria insuficiente, no cancela los eventos 'AlarmManager' programados. – CommonsWare

Cuestiones relacionadas