Android 电池碰撞:后台服务+;广播接收器与AlarmManager每分钟轮询?
我正在编写一个应用程序,它需要检测屏幕何时从背景打开或关闭(精度约为1分钟)。理想情况下,我只是静态注册Intent.ACTION\u SCREEN\u ON和Intent.ACTION\u SCREEN\u OFF,但不幸的是,这是不允许的 这就给我留下了两个不太好的选择——实际上是非常可怕的选择(除非有什么我不知道的,很可能是):Android 电池碰撞:后台服务+;广播接收器与AlarmManager每分钟轮询?,android,performance,android-intent,battery,processing-efficiency,Android,Performance,Android Intent,Battery,Processing Efficiency,我正在编写一个应用程序,它需要检测屏幕何时从背景打开或关闭(精度约为1分钟)。理想情况下,我只是静态注册Intent.ACTION\u SCREEN\u ON和Intent.ACTION\u SCREEN\u OFF,但不幸的是,这是不允许的 这就给我留下了两个不太好的选择——实际上是非常可怕的选择(除非有什么我不知道的,很可能是): 运行一个无所不在的服务+广播接收器,该接收器可注册和关闭意图或 使用AlarmManager计划每分钟运行一些代码,并检查显示器是否在 #1不是很好,因为它可能会
在电池寿命影响方面,两个坏处中哪一个比较小?我不是android开发人员(但这会很有趣),但在阅读AlarmManager类概述时,它说如果应用程序尚未运行,它将定期启动应用程序。这不是轮询,因为代码没有运行,也不会影响性能或使处理器处于唤醒状态(消耗能量)。我确信AlarmManager类本身也没有轮询 您还可以考虑暂停应用程序进程,并定期将其唤醒。启动流程通常是一项昂贵的操作。尽管挂起应用程序不会消耗处理器资源(从而影响功耗),但它确实会占用内存