Android 前台服务在屏幕关闭后是否需要唤醒锁来保持活动?

Android 前台服务在屏幕关闭后是否需要唤醒锁来保持活动?,android,android-service,wakelock,android-wake-lock,foreground-service,Android,Android Service,Wakelock,Android Wake Lock,Foreground Service,在不同的来源中,我了解到前台服务需要一个唤醒锁,以便在设备进入睡眠状态后保持活动状态。但当我通过启动前台服务并在设备拔出时关闭屏幕(无论是在emulator上还是在真正的三星设备上)来测试它时,前台服务会一直运行 前台服务是否需要(部分)唤醒锁才能在屏幕关闭后保持活动状态?根据我开发计时器的经验,答案是肯定的,尤其是当屏幕关闭时 如果没有唤醒锁,前台服务将在几分钟内被终止或暂停(在我的测试中为2~10m)。有时,当屏幕关闭时,代码将不会执行,但前台通知仍然存在,并且代码仅在屏幕打开后才开始执行。

在不同的来源中,我了解到前台服务需要一个唤醒锁,以便在设备进入睡眠状态后保持活动状态。但当我通过启动前台服务并在设备拔出时关闭屏幕(无论是在emulator上还是在真正的三星设备上)来测试它时,前台服务会一直运行


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

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

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


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

这很奇怪,因为我已经在emulator和Galaxy Note 8上对其进行了测试,并且在这两种设备上,如果没有唤醒锁,服务从未停止。实际上,我启动了一个长期运行的前台服务,并在屏幕关闭、未插入充电器的情况下让它运行了一整晚,今天早上它仍在运行。@FlorianWalther我不相信模拟器的测试结果。仅供参考,我之前检查过一个音乐播放器应用程序,它有前台服务和唤醒锁。你能给我看看那个音乐播放器吗?此外,我还将其作为前台服务进行了测试,在我的真实设备上没有唤醒锁,整个晚上都在运行。我只希望我能找到一个服务被杀的情况。从我的测试中,只有乔布斯被推迟了。@FlorianWalther很抱歉,我很久以前就做了那个测试,已经忘记了音乐播放器的名字了。您可能希望通过adb打开空闲或应用程序待机或其他功能来测试您的应用程序。但是为什么工作延期不是问题呢?我试着了解一下唤醒锁的窍门,但是现在所有的东西对我来说都是一样的,有没有唤醒锁。你有更多的信息吗?我在我的摩托罗拉Moto E4 plus上也看到了同样的情况。它一直在运行,所以我想知道WakeLock的目的是什么。即使您需要它,CPU也需要一直保持清醒以周期性地执行小块代码,这似乎很奇怪。