在Android上有WakeLock
和WifiLock
--但是如果我的屏幕从不关闭,我需要这些吗?
我使用持久连接(例如WebSockets)长达数十分钟甚至数小时。假设连接保持可用且服务器正常,那么我的屏幕始终开启是否足以防止设备丢失这些连接?
为了保持屏幕常亮,我使用标准方法:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
文档中的说明:
为了避免电池过度消耗,处于空闲状态的Android设备会快速进入睡眠状态。
(https://developer.android.com/training/scheduling/wakelock.html)
通常情况下,当用户长时间未使用设备时,Wi-Fi无线电可能会关闭。(http://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html)
这是否意味着当用户长时间不与设备交互时(即使屏幕仍然开着),Wi-Fi无线电或CPU可能会进入睡眠模式或关闭?更具体地说,当仍有一个Activity保持屏幕开启时,后台任务(例如IntentService)的Wi-Fi或移动数据连接是否可能进入睡眠状态?