我正在为我的 Android 服务使用一个处理程序,它每 60 分钟(1 小时)重复一些操作,并使用 PartialWakeLock 来保持手机不休眠。但这会导致大量电池使用。
所以决定研究有人在这里写的AlarmManager(我是菜鸟),以便完美地完成这类事情..
但是现在在网上阅读我发现使用AlarmManager 的人仍然需要WakeLock。这是真的吗?
在不耗尽电池的情况下,每 60 分钟(1 小时)运行一个周期的最佳方法是什么?
谢谢
附言
只要警报接收器的 onReceive() 方法正在执行,警报管理器就会持有 CPU 唤醒锁。这保证了在您完成广播处理之前手机不会休眠。一旦 onReceive() 返回,警报管理器就会释放这个唤醒锁。这意味着在某些情况下,一旦您的 onReceive() 方法完成,手机就会进入睡眠状态。如果您的警报接收器调用了 Context.startService(),则手机可能会在请求的服务启动之前休眠。为防止这种情况,您的 BroadcastReceiver 和Service 将需要实施单独的唤醒锁定策略,以确保手机继续运行直到服务可用。
但似乎我需要 2 个唤醒锁,而只需要 1 个使用处理程序的唤醒锁……是真的吗?