如何在没有 AlarmManager 的情况下安排警报 API
How to schedule Alarm without AlarmManager API
我想在没有 AlarmManager API 的情况下安排闹钟,因为这在我的三星设备上不起作用(三星智能管理器取消闹钟),但我不知道我该怎么做?
如果这真的是闹钟类应用程序,那么 alarm clock methods on AlarmManager
应该是可靠的。它们会有副作用,例如您无法控制的系统位UI。
但是,任何其他类型的基于设备时间的计划工作都是不可靠的,因为太多的开发人员在这种事情上浪费了太多的电池。 Google 和设备制造商根据用户对电池寿命的投诉,已采取措施限制 AlarmManager
可能造成的损害:
- Android 6.0+ 有打盹模式和应用待机
- SONY 有他们的 STAMINA 模式
- 三星有他们的同类产品
- 以此类推
Google 似乎强调 JobScheduler
(或 GcmNetworkManager
,如果您使用 Play 服务)作为定期工作的首选方法,当然欢迎您使用它.但是,它仅适用于 Android 5.0+。而且,与 AlarmManager
的某些方面一样,JobScheduler
是不准确的——您的事件不会在请求的时间准确触发,而是在附近的某个时间触发,以帮助尽量减少我们有的次数将设备从睡眠模式中唤醒。 JobScheduler
还受到 Android 6.0+ 上的打瞌睡模式和应用待机的影响。
我想在没有 AlarmManager API 的情况下安排闹钟,因为这在我的三星设备上不起作用(三星智能管理器取消闹钟),但我不知道我该怎么做?
如果这真的是闹钟类应用程序,那么 alarm clock methods on AlarmManager
应该是可靠的。它们会有副作用,例如您无法控制的系统位UI。
但是,任何其他类型的基于设备时间的计划工作都是不可靠的,因为太多的开发人员在这种事情上浪费了太多的电池。 Google 和设备制造商根据用户对电池寿命的投诉,已采取措施限制 AlarmManager
可能造成的损害:
- Android 6.0+ 有打盹模式和应用待机
- SONY 有他们的 STAMINA 模式
- 三星有他们的同类产品
- 以此类推
Google 似乎强调 JobScheduler
(或 GcmNetworkManager
,如果您使用 Play 服务)作为定期工作的首选方法,当然欢迎您使用它.但是,它仅适用于 Android 5.0+。而且,与 AlarmManager
的某些方面一样,JobScheduler
是不准确的——您的事件不会在请求的时间准确触发,而是在附近的某个时间触发,以帮助尽量减少我们有的次数将设备从睡眠模式中唤醒。 JobScheduler
还受到 Android 6.0+ 上的打瞌睡模式和应用待机的影响。