我有一个带有一些`Handlers`的活动,这些处理程序以不超过5分钟的间隔执行。该活动是从`BroadcastReceiver`启动的,并且可能在屏幕关闭时等待用户抓取电话并获取用户输入,当这种情况发生时,活动的`onPause()`被调用,因此CPU肯定处于睡眠模式。我没有设置活动来打开屏幕,因为我想尽可能节省电量。
我已经通过我的手机进行了测试,而且效果非常好,当屏幕关闭时,所有的`Handlers`都会执行它们需要运行的所有代码。如果我在活动打开时打开和关闭屏幕,一切都正常工作。
现在,我已经到处阅读,当屏幕关闭并且CPU处于睡眠状态时,某些设备的表现并不如预期,大多数时候与加速计有关。现在我的问题是,在我的活动打开时,是否需要获取`WakeLock`,以便CPU不会进入睡眠状态?我真的想知道这一点,因为我之前说过,我不想通过获取昂贵的`WakeLock`浪费电池电量。
我更喜欢一个详细回答这个问题的人,他确实知道这是如何工作的。
我已经通过我的手机进行了测试,而且效果非常好,当屏幕关闭时,所有的`Handlers`都会执行它们需要运行的所有代码。如果我在活动打开时打开和关闭屏幕,一切都正常工作。
现在,我已经到处阅读,当屏幕关闭并且CPU处于睡眠状态时,某些设备的表现并不如预期,大多数时候与加速计有关。现在我的问题是,在我的活动打开时,是否需要获取`WakeLock`,以便CPU不会进入睡眠状态?我真的想知道这一点,因为我之前说过,我不想通过获取昂贵的`WakeLock`浪费电池电量。
我更喜欢一个详细回答这个问题的人,他确实知道这是如何工作的。
KEEP_SCREEN_ON
标志,所以有时候活动在屏幕关闭的情况下打开(或者在活动打开时屏幕关闭)。 - Jorge Fuentes González