是否应使用Service或BroadcastReceiver构建警报?

时间:2013-04-18 21:35:41

标签: android service broadcastreceiver alarm

我想构建一个警报应用程序。我见过一些例子,其中一些使用Service,一些使用BroadcasterReceiver。用户将设置警报,然后当它关闭时,他们将不得不做某些事情,例如解决数学方程式或在关闭之前扫描NFC标签。我应该使用哪一个?

1 个答案:

答案 0 :(得分:3)

如果您使用AlarmManager警告_WAKEUP,则必须拥有PendingIntentBroadcastReceiver的路由。 Android保证_WAKEUP警报唯一的问题是,如果您使用BroadcastReceiver,Android会让设备保持足够长的时间以使onReceive()完成。所有其他的,所有的赌注都没有了。

你要做的工作需要花费几个多毫秒的时间,让BroadcastReceiver转向并将控制传递给服务,这可以在后台线程上完成。您可能希望使用my WakefulIntentService;如果没有,您将需要管理自己的WakeLock以确保设备保持清醒状态,直到服务完成其工作。