AlarmManager Javadoc stati di Androidblocco scia di AlarmManager quando si avvia un servizio
When an alarm goes off, the Intent that had been registered for it is broadcast by the system,
C'è un (com.example.android.apis.app confezione) AlarmService
nelle demo API fornite con Android che dimostrano AlarmService in uso.
In esso abbiamo la seguente (a cura per chiarezza):
PendingIntent mAlarmSender = PendingIntent.getService(AlarmService.this,
0, new Intent(AlarmService.this, AlarmService_Service.class), 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 30*1000, mAlarmSender);
Quindi, in questo esempio non fa un PendingIntent mAlarmSender = PendingIntent.getBroadcast(...);
invece si fa un getService
cui il Javadoc mai allude.
La ragione per cui le sto chiedendo è a causa delle implicazioni del blocco della CPU. Javadoc dice che il wake lock di AlarmManger verrà rilasciato quando ritorna il onReceive()
di un ricevitore Broadcast.
Quello che mi chiedo sono quali sono le implicazioni del wake lock se si utilizza un allarme come nell'esempio? Il Javadoc non sembra affrontare questo. Semmai sembra implicare che è necessario utilizzare la tecnica di trasmissione quando si impostano gli allarmi.
risposta perfetta - ottimo allegato. Molte grazie – Tim
anche .. qual è il modo migliore per cancellare un WakefulIntentService? – Tim
@Tim: non sono sicuro di cosa intendi con "annulla un servizio WakefulIntent". È possibile annullare l'allarme tramite 'cancel()' su 'AlarmManager'. – CommonsWare