0

我想构建一个警报应用程序。我看过一些例子,其中一些使用 Service,一些使用 BroadcasterReceiver。用户将设置闹钟,然后当闹钟响起时,他们必须在闹钟响起之前做一些事情,例如求解数学方程式或扫描 NFC 标签。我应该使用哪一个?

4

1 回答 1

3

如果您AlarmManager_WAKEUP警报一起使用,则必须具有PendingIntentBroadcastReceiver. Android 唯一通过_WAKEUP警报保证的是,如果您使用 a BroadcastReceiver,Android 将使设备保持唤醒足够长的时间onReceive()以完成。其他任何事情,所有赌注都没有了。

您想要完成的工作将花费超过几毫秒的时间,BroadcastReceiver转身并将控制权传递给服务,该服务可以在后台线程上完成其工作。您可能希望为此使用WakefulIntentService的;如果没有,您将需要自行管理WakeLock以确保设备保持唤醒状态,直到服务完成其工作。

于 2013-04-18T22:18:27.430 回答