2012-04-20 14 views
5

Sono un principiante in Android, quindi per favore abbiate pazienza con me. La mia attività principale crea e allarmi nel gestore degli allarmi che dovrebbe sparare in un momento specifico, la mia attività principale crea anche un ricevitore Broadcast che suppone ricevere l'intenzione che l'allarme ha sparato, tutto funziona fino a che Task Manager non uccide la mia app. Ho controllato l'elenco PendingIntent in AlarmManager e ho verificato che il mio allarme si sta cancellando da Alarm Manager, cerco di aggiungere il servizio e registrare l'allarme dal servizio, ho cancellato quello forse perché il mio IntentFilter del ricevitore Broadcast è definito nel codice e non in manifesta di venire ucciso dopo il processo di applicazione viene ucciso, e mi sono bloccato su questo tema per due settimane :-(, con grande confondere, il mio disegno è sbagliatoAllarme in AlarmManager si cancella quando il processo viene ucciso

Ecco le mie esigenze:?

  1. che l'allarme sarà molto affidabile, anche se l'applicazione viene ucciso o anche se il telefono è il riavvio.
  2. lo stesso vale per il ricevitore di broadcast.

Grazie in anticipo,

risposta

6

se il compito-kills utente o forza-ferma l'applicazione, i vostri allarmi sono registrati. Inoltre, su Android 3.1+, nulla della tua app verrà eseguito di nuovo finché l'utente non avvierà manualmente una delle tue attività.

Non c'è niente che si può fare su questo, se non per fare del tuo meglio per scrivere un'applicazione di alta qualità che l'utente non avrà necessità o desiderio di forzare-stop.

+0

come su un altro .apk che riavvia i primi WatchdogService e viceversa? non è etico, ma funzionerebbe? – n00b

+0

per essere chiari, è solo da un * force * kill avviato dall'utente? se il sistema uccide la mia app (ad esempio a causa di una condizione di memoria insufficiente temporanea), dovrei aspettarmi di ricevere l'allarme in seguito? – Michael

+2

@ Michael: la normale chiusura del processo, come il killer esaurito, non annulla gli eventi programmati di 'AlarmManager'. – CommonsWare

Problemi correlati