前台服务是否需要唤醒锁才能在屏幕关闭后保持活动状态?

Flo*_*her 4 android android-service android-wake-lock wakelock foreground-service

在不同的来源中,我读到前台服务需要唤醒锁才能在设备进入睡眠状态后保持活动状态。但是,当我通过启动前台服务并在设备拔出插头时关闭屏幕(在模拟器上和真正的三星设备上)来测试它时,前台服务继续运行。

前台服务是否需要(部分)唤醒锁才能在屏幕关闭后保持活动状态?

Dew*_*eed 5

根据我开发计时器的经验,答案是肯定的,尤其是当屏幕关闭时。

如果没有唤醒锁,前台服务将在几分钟内被杀死或暂停(在我的测试中为2 ~ 10m)。有时,当屏幕关闭时,代码不会被执行,但前台通知仍然存在,代码只有在屏幕打开后才开始执行。这使得调试非常困难。如果测试设备来自中国制造商,这种情况更常见(如果您的应用程序针对中国市场,前台服务+唤醒锁+让用户将您的应用程序列入白名单似乎是唯一可靠的选择)。

如果您希望服务在屏幕关闭后继续运行,请使用唤醒锁。