Ответ 1
Может ли Wi-Fi или CPU переходить в режим сна, когда экран включен?
Нет.
На Android есть WakeLocks и WifiLocks, но нужны ли они мне, если мой экран никогда не отключается?
Я не совсем понимаю, как ваш экран никогда не выключается. В конце дня всегда участвует AFAIK, a WakeLock
. Нужен ли вам WakeLock
или управляется ли это WakeLock
классами framework (например, android:keepScreenOn
) или ОС (например, параметр "Параметры" для включения экрана) будет зависеть от того, что вы делаете.
Я никогда не видел, чтобы устройство Android отключило Wi-Fi, пока экран включен (а не на экране блокировки). Я не могу исключить возможность отключения Wi-Fi из-за низкого уровня заряда батареи в экстремальном энергосберегающем режиме производителя.
Будет ли мой экран всегда включен, чтобы предотвратить потерять эти устройства (если мы предположим, что соединение остается доступным, а сервер в порядке)?
Я бы назвал это более подробно, так как "сохранение экрана поможет". Или, что лучше, если устройство перейдет в спящий режим, обычно будут отключены ваши соединения WiFi.
Чтобы включить экран, я использую стандартный способ: getWindow(). addFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Это означает, что вы используете WakeLock
. Просто так случается, что для вас это управляется, и поскольку вы не можете его испортить, вам не нужно разрешение WAKE_LOCK
.
Wi-Fi-радио или CPU могут перейти в спящий режим или выключиться, если пользователь не будет взаимодействовать с устройством в течение более длительного времени (даже если экран все еще включен)?
Для обычного устройства нет. Я не могу исключить, что какой-то производитель делает какую-то вещь, которая может иметь такое поведение.
И, более конкретно, может ли фоновая задача (например, IntentService) Wi-Fi или мобильное подключение к данным переходить в спящий режим, когда еще есть действие, которое поддерживает экран?
Не следует. В частности, мобильное соединение для передачи данных никогда не переходит в режим сна.
Все это говорит о том, что надежность того, что вы делаете, будет сосать, если это не полностью контролируемая среда. Вы делаете много предположений:
-
Какой-то постоянный источник питания
-
Никто не возится с устройством, чтобы переместить вашу деятельность на задний план или кнопку BACK из нее
-
Никто не возится с сетью WiFi, либо вообще, либо суетливый с настройками на устройстве (например, помещая его в режим самолета)
-
Etc.
Если это какой-то монитор промышленного процесса или устройство в киоске, вероятность того, что вы полностью контролируете эти вещи, приличная, но не большая. Вы намного превосходите это, и вероятность того, что эти вещи быстро задерживают хвост,
Есть ли у вас какие-либо ссылки?
В идеальном мире все это будет прекрасно задокументировано, будет мир между всеми народами, и Хейли Атвелл подумает, что я порядочный человек.
Это не идеальный мир.
Этот материал не только не документирован, но и зависит от производителей устройств. Поэтому, если это не контролируемая среда очень, хотя вы можете попытаться получить такое поведение, реальный мир очень запутан, и вы не должны предполагать, что вы можете поддерживать соединение открытым до бесконечности.