我正在编写一个应用程序,需要检测屏幕何时从背景开启或关闭(精度约为1分钟)。理想情况下,我只是静态注册Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF,但不可避免地,这是不允许的。
这给我留下了两个不那么伟大的---实际上非常可怕的选择(除非有一些我不知道的东西,很可能):
#1不是很好,因为它可以被杀死,它浪费内存,它需要运行onboot,当安装在SD卡上时不能正常运行等等。列表继续。
#2并不是很好,因为它不太精确......让我们面对它 - 民意调查几乎不是正确答案
但最糟糕的是,它们都会对电池寿命产生负面影响。这实际上是恕我直言最重要的因素。
在电池寿命影响方面,这两个罪恶中哪一个较小?
答案 0 :(得分:0)
我不是一个Android开发人员(但它很有趣)但是在阅读AlarmManager类概述时,它表示如果应用程序尚未运行,它将定期启动它。这不是轮询,因为代码没有运行,不会影响性能或保持处理器唤醒(消耗能量)。我确定AlarmManager类本身也没有轮询。
您可能还会考虑暂停您的申请流程并定期将其唤醒。启动流程通常是一项昂贵的操作。虽然暂停应用程序并不会消耗处理器资源(因此会影响功耗)但它确实会占用内存。