Android 前台服务运行时,设备是否进入睡眠模式
我的应用程序需要在后台长时间运行,并定期向服务器发送数据。我尝试了AlarmManager,但它在打瞌睡模式下受到限制。我接下来想到的是前台服务 在前台服务运行时,设备是否进入睡眠模式Android 前台服务运行时,设备是否进入睡眠模式,android,foreground-service,doze,Android,Foreground Service,Doze,我的应用程序需要在后台长时间运行,并定期向服务器发送数据。我尝试了AlarmManager,但它在打瞌睡模式下受到限制。我接下来想到的是前台服务 在前台服务运行时,设备是否进入睡眠模式 如果设备进入打盹模式,在前台服务运行时,互联网连接是否受到限制?这对我来说非常有效,使用一些模拟器和Android 6.0和7.1真实设备测试了几个小时的连续运行,网络连接从未丢失: 在Pause上的主活动中,我获取了一个部分唤醒锁,并启动了一个具有STARTFOREGROUND_操作意图的服务,该服务调用STA
如果设备进入打盹模式,在前台服务运行时,互联网连接是否受到限制?这对我来说非常有效,使用一些模拟器和Android 6.0和7.1真实设备测试了几个小时的连续运行,网络连接从未丢失: 在Pause上的主活动中,我获取了一个部分唤醒锁,并启动了一个具有STARTFOREGROUND_操作意图的服务,该服务调用STARTFOREGROUND并显示一个通知 在Activity onResume上,WakeLock被释放,服务以STOPFOREGROUND_操作意图停止,服务本身调用STOPFOREGROUND&stopSelf 同时也可避免在按Back键时破坏活动:
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
当然,我提供了一个菜单选项来停止后台进程并完成活动
我的定期询问internet服务器的代码放在活动中,它使用计时器
希望能有所帮助我没有完全理解您的解决方案。Android打盹模式忽略所有唤醒锁。不适用于有活动前台服务+通知的我。我已经在几个真实的设备上进行了测试。这里进行了深入的讨论:即使使用前台服务,AlarmManager的setExact和SetExactAndAllowHileId也不会在打瞌睡模式下工作。设备唤醒后,AlarmManager会触发。setAlarm正在打瞌睡模式下工作,但它在状态栏上显示报警图标。是否有其他方法来安排服务中的定期任务?似乎为了避免进入打盹模式,前台服务必须显示通知。。。