如何以1分钟的小间隔使用Android AlarmManager?

Pio*_*ler 5 android timer background-service alarmmanager

我想制作一些外部服务监视器,并尽快通知问题.

我尝试设置AlarmManager间隔1-2分钟,但看起来它每隔几分钟随机发射一次.

当然,我想安全地通过android杀死我的后台任务,如果我只是使用它会停止监视Service.

是否可以AlarmManager小而准确的间隔使用?

在Facebook,Gmail等应用程序中使用哪些方法来通知新消息?

ServicestartForeground和偏用更好WakeLock吗?

Com*_*are 8

我尝试以1-2分钟的间隔设置AlarmManager,但看起来它每隔几分钟随机发射一次.

由于您决定不显示如何"以1-2分钟间隔设置AlarmManager",因此任何人都很难帮助您.请阅读文档,AlarmManager并注意Android 4.4新增的默认行为.

我想安全地通过android杀死我的后台任务,如果我只是使用Service,它会停止监视.

AlarmManager并没有解决这方面的所有问题.例如,如果用户选择强制停止您的应用程序(例如,通过"设置"),则会删除您的警报.

是否可以以小而准确的间隔使用AlarmManager?

使用setRepeating()在Android 1.0-4.3,并setExact()在Android 4.4或以上版本.使用setExact(),作为处理一个警报事件的一部分,您需要安排下一个警报事件.

使用startForeground和部分WakeLock创建服务会更好吗?

仅当您的设备始终插入电源时(例如,工业过程监控器).

  • @ Eu.Dr.:正确.但是,选择`targetSdkVersion`有很多因素.精明的程序员考虑到,有一天,他们需要提高他们的`targetSdkVersion`并忘记它对警报的影响.因此,这些程序员将在开发新的"AlarmManager"代码时选择`setExact()`,这里需要准确的报警.`targetSdkVersion`主要是为了简化已有代码的转换,而不是在编写新代码时忽略更改的许可. (2认同)