Android 7.0(Nougat)打盹模式停止Web服务

Jus*_*tin 19 android android-wifi android-doze

我有一个带有WiFi锁的Android前台服务,它充当另一个本地设备的Web服务.在打盹模式之前,获取WiFi锁并根据需要提供服务非常有效.

即使关闭了我的应用程序的电池优化功能,当屏幕关闭几分钟时,手机仍然会杀死应用程序.

如何正确警告Android明确地在前台执行客户请求的服务,并且他们此时不希望他们的手机进入睡眠状态?

编辑:这个问题仍然存在于Android 8.0(奥利奥)

rup*_*ain 0

尝试使用前台服务 - https://developer.android.com/guide/components/services.html#Foreground

前台服务是用户主动感知的服务,并且不是系统在内存不足时杀死的候选服务。前台服务必须为状态栏提供通知,该通知位于“正在进行”标题下。这意味着除非服务停止或从前台删除,否则无法取消通知。

您还可以尝试 FULL_WAKE_LOCK 或 SCREEN_DIM_WAKE_LOCK 并查看它是否会阻止您的设备进入打瞌睡模式。请参阅 - https://developer.android.com/reference/android/os/PowerManager.html#FULL_WAKE_LOCK