На 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 могут перейти в спящий режим или выключиться, если пользователь не будет взаимодействовать с устройством в течение более длительного времени (даже если экран все еще включен)?
И, более конкретно, может ли фоновая задача (например, IntentService
) Wi-Fi или мобильное соединение для передачи данных переходить в спящий режим, когда есть еще Activity
, на котором хранится экран?