【发布时间】:2016-05-22 07:25:06
【问题描述】:
我有一个应用程序需要在空闲时执行一些后台清理工作,它使用始终在后台运行的服务以及在 ACTION_SCREEN_OFF 和 ACTION_SCREEN_ON 上注册的 BroadcastReceiver,它会检测屏幕何时消失关闭并运行后台工作程序,我也在我的主要活动中使用onPause 方法来指示服务启动后台工作程序。
我遇到的问题是,当屏幕关闭时,首先调用onPause,然后BroadcastReceived 检测到屏幕关闭操作,因此后台工作人员被调用了两次。
如果应用被最小化并且屏幕仍然亮着,是否可以在onPause方法中找到?
【问题讨论】:
-
在开始一个新的之前让服务检查worker是否已经在运行?
-
@HannoBinder 可以工作,但我更喜欢检查屏幕是否打开而不是使用全局布尔值,除非这是唯一的方法。
标签: android