我想构建一个警报应用程序。我见过一些例子,其中一些使用Service,一些使用BroadcasterReceiver。用户将设置警报,然后当它关闭时,他们将不得不做某些事情,例如解决数学方程式或在关闭之前扫描NFC标签。我应该使用哪一个?
答案 0 :(得分:3)
如果您使用AlarmManager
警告_WAKEUP
,则必须拥有PendingIntent
到BroadcastReceiver
的路由。 Android保证_WAKEUP
警报唯一的问题是,如果您使用BroadcastReceiver
,Android会让设备保持足够长的时间以使onReceive()
完成。所有其他的,所有的赌注都没有了。
你要做的工作需要花费几个多毫秒的时间,让BroadcastReceiver
转向并将控制传递给服务,这可以在后台线程上完成。您可能希望使用my WakefulIntentService
;如果没有,您将需要管理自己的WakeLock
以确保设备保持清醒状态,直到服务完成其工作。