我们公司正在开发一个Android应用程序,它使用网络通信从设备发送GPS信号。设备是相同的,它们都是工作工具,所以我们不必担心电池耗尽等。目前,活动有一个线程,它与服务器通信。问题是当设备被锁定并进入休眠状态时,网络通信中断。
我试图对onPause
方法进行部分唤醒锁定以保持CPU运行,并在onResume
方法中释放唤醒锁,但似乎无法正常工作。知道如何防止睡眠,或者在客户端和服务器之间保持无流通信吗?
答案 0 :(得分:0)
不幸的是,这是新的行为,你可以在这里阅读: https://developer.android.com/about/versions/nougat/android-7.0-changes.html 请参阅“打盹”部分。
当设备使用电池电源并且屏幕已关闭一段时间后,设备会进入Doze并应用第一个限制子集:它会关闭应用程序网络访问,并延迟作业和同步。如果设备在进入Doze后静止一段时间,系统会将其余的Doze限制应用于
PowerManager.WakeLock, AlarmManager
警报,GPS和Wi-Fi扫描。
可以通过@egoldx在评论中使用上述前台服务来解决。
一直尝试拿着一个唤醒锁,甚至是部分锁定装置肯定是不好的做法。