Поддерживает ли AlarmManager Wi-Fi в активном состоянии или требуется wakeLock?

Я использую AlarmManger для планирования таймера поддержания активности на удаленном сервере, поэтому каждый ИНТЕРВАЛ пакет UDP отправляется на сервер. Должен ли я получить блокировку Wi-Fi/ЦП, когда пакета, отправленного или запущенного в контексте AlarmManager, достаточно? Примечание. Я запускаю службу, чтобы приложение оставалось в фоновом режиме.


person mantemac    schedule 17.11.2011    source источник
comment
Добро пожаловать в Stackoverflow! Если вы найдете ответ полезным, пожалуйста, проголосуйте за него. Если ответ успешно отвечает на ваш вопрос, нажмите зеленую галочку рядом с ним, чтобы принять ответ. Также загляните на stackoverflow.com/questions/how-to-ask, чтобы узнать, как написать хороший вопрос.   -  person Kurtis Nusbaum    schedule 17.11.2011


Ответы (1)


Да, для этого вам понадобится блокировка Wi-Fi/CPU. Тем не менее, предостережение: вы собираетесь убить батарею пользователя, делая это. Вы должны найти способ асинхронно общаться с вашим сервером, например, с REST. Android позволяет людям очень легко выяснить, какие приложения потребляют больше всего энергии аккумулятора, поэтому, если вы не хотите множества удалений, вам, вероятно, следует найти способ обойти это.

person Kurtis Nusbaum    schedule 17.11.2011
comment
Спасибо за Ваш ответ. Итак, какова цель этого флага: ELAPSED_REALTIME_WAKEUP? В документации... который разбудит устройство, когда оно отключится ссылка. Может я ошибаюсь? - person mantemac; 17.11.2011
comment
Он разбудит устройство, если оно спит. Я никогда не говорил, что ваш подход невозможен, просто он может разрядить батарею, если вы будете делать это много. Разбудить устройство и включить радио вполне выполнимо, просто не рекомендуется. - person Kurtis Nusbaum; 17.11.2011
comment
Я пишу sip-клиент, и мне нужно сделать так, чтобы NAT (маршрутизатор) оставался открытым. Должен ли я попробовать какой-то другой подход? - person mantemac; 18.11.2011
comment
Ах, ну, в таком случае я бы сказал, что тогда, вероятно, нет никакого способа обойти это. Давай, используй свой подход. Это один из тех случаев, когда вам просто нужно держать соединение открытым. Ничего страшного. Я просто хотел убедиться, что ты не делаешь того, чего не должен делать. - person Kurtis Nusbaum; 18.11.2011
comment
ХОРОШО. поэтому я должен использовать блокировку Wi-Fi/CPU? - person mantemac; 18.11.2011