我的应用程序需要在后台运行很长时间并定期将数据发送到服务器。我尝试过AlarmManager,但它在打盹模式下受到限制。我接下来认为是前台服务。
前台服务运行时设备是否进入休眠模式?
如果设备进入休眠模式,前台服务运行时是否限制了互联网连接?
答案 0 :(得分:0)
这对我很有用,用一些模拟器和Android 6.0和7.1真实设备测试了几个小时的连续操作,网络连接永不丢失:
在主要活动onPause我获得了一个部分唤醒锁并且我使用STARTFOREGROUND_ACTION意图启动了一个服务,服务调用startForeground并显示一个通知。
On Activity onResume释放WakeLock,服务停止,STOPFOREGROUND_ACTION意图,服务本身调用stopForeground& stopSelf。
并且还可以避免在Back Key按下时销毁活动:
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
当然我提供了一个菜单选项来停止背景访问并完成活动
定期询问互联网服务器的代码放在Activity中,它使用计时器。
希望它会有所帮助