2012-01-07 10 views
6

Nella mia app, ho impostato un allarmeAlarmManager oggetto dopo aver spento e il telefono

AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
... 
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
... 
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent); 

Funziona benissimo a meno che io spengo e accendo il telefono.

Per essere più specifici, diciamo alle 10:20, ho impostato un allarme per 10:22 e spengo e accendo il telefono alle 10:21, l'allarme non funzionerà.

Quale potrebbe essere il problema? È un problema di trasmissione di PendingIntent o dovrei impostare alcuni flag dell'oggetto AlarmManager affinché funzioni in tali condizioni?

+1

è possibile controllare questo http://stackoverflow.com/questions/5072451/clarification-of-alarmmanager-behavior-in-android. sembra simile allo – nandeesh

risposta

17

La documentazione sulla AlarmManager dice che:

allarmi registrati vengono mantenuti mentre il dispositivo è addormentato (e può opzionalmente svegliare il dispositivo su se se ne vanno in quel periodo), ma verrà cancellata se è spento e riavviato.

Sembra che l'AlarmClock incluso per impostazione predefinita da Android funzioni anche dopo un riavvio.

Per mantenere attivi gli allarmi dopo un riavvio, è necessario avviare l'applicazione al termine dell'installazione e impostare nuovamente tutti gli alams con AlarmManager. (In realtà potresti voler impostare i tuoi allarmi usando una trasmissione, non avviare la tua app)

Here è una domanda StackOverflow che tratta di pranzare un'app all'avvio.

Si può anche verificare come l'AlarmClock predefinito esegue questa operazione leggendo dalla sorgente. È possibile leggere e scaricare da here

+0

include lo spegnimento dello schermo? –

+0

'spegnendo lo schermo' significa che il dispositivo è in stop. Gli allarmi verranno conservati spegnendo lo schermo e non spegnendo completamente il telefono. –

+1

Vedo, quindi cosa succede se l'allarme è impostato per essere ripetuto e il dispositivo rimane inattivo per un lungo periodo? vuol dire che otterrà più intenti (dello stesso allarme) allo stesso tempo? –

Problemi correlati