我想构建一个警报应用程序。我看过一些例子,其中一些使用 Service,一些使用 BroadcasterReceiver。用户将设置闹钟,然后当闹钟响起时,他们必须在闹钟响起之前做一些事情,例如求解数学方程式或扫描 NFC 标签。我应该使用哪一个?
问问题
296 次
1 回答
3
如果您AlarmManager
与_WAKEUP
警报一起使用,则必须具有PendingIntent
到BroadcastReceiver
. Android 唯一通过_WAKEUP
警报保证的是,如果您使用 a BroadcastReceiver
,Android 将使设备保持唤醒足够长的时间onReceive()
以完成。其他任何事情,所有赌注都没有了。
您想要完成的工作将花费超过几毫秒的时间,BroadcastReceiver
转身并将控制权传递给服务,该服务可以在后台线程上完成其工作。您可能希望为此使用我WakefulIntentService
的;如果没有,您将需要自行管理WakeLock
以确保设备保持唤醒状态,直到服务完成其工作。
于 2013-04-18T22:18:27.430 回答