2016-04-14 4 views
0

Я видел 2 подхода для проверки сервера на Android каждый X раз, поэтому я хочу спросить, в каком направлении лучше.Проверка сервера каждые 5 минут

Мое приложение запрашивает HTML-страницу с сервера.

Первый вариант - запуск службы со временем сна 5 минут. Второй вариант, чтобы установить диспетчер аварийных сигналов с интервалом в 5 минут, который запускает широковещательный ресивер.

Рад, если вы можете сказать мне, какой путь лучше, или если есть лучший способ.

спасибо.

+0

Вам нужно делать это только в том случае, когда приложение видно пользователю? Я бы предложил попробовать с https://developers.google.com/cloud-messaging/network-manager – jakubbialkowski

+0

Почему бы не просто ping-сервер? Вы можете использовать планировщик типа Quartz или cron4j для реализации вашего 5-минутного сна. –

+0

Использовать ScheduledThreadPoolExecutor – Madhusudhan

ответ

2

Я бы предложил использовать AlarmManager и установить будильник каждые 5 минут и использовать BroadcastReceiver, чтобы получить сообщение.

Причина в том, что при запуске службы в фоновом режиме, если ОС требуется больше ресурсов, она убьет ваш сервис и получит ресурсы для других приложений, но с помощью Alarms вы уменьшите риск убийства вашего приложения.

Что касается проверки сервера, обратитесь к руководству this. только один запрос опроса на сервер сделает ваше радио активным не менее 30 секунд и будет потреблять ваш аккумулятор. Поэтому, возможно, вам следует пересмотреть свои интервалы или даже свою стратегию.

Другое примечание. Если вы просто проверяете сервер на наличие новых данных и хотите получить информацию, если что-то изменилось, вы можете использовать Cloud Messaging. Вы можете выполнить большую часть обработки в облаке и просто отправить важные данные обратно на устройство (устройства). Это эффективнее

+0

Что лучше? С помощью диспетчера аварийных сигналов с интервалом 5 минут или установкой будильника каждые 5 минут? –

+0

@guybenhemo устанавливает будильник для повторного включения через 5 минут – Pooya

1

Я согласен с @Pooya. Также вы должны реализовать загрузочный приемник, чтобы ваш будильник был установлен, если телефон перезагружен. Вот пример приложения, которое я загрузил с http://developer.android.com/shareables/training/Scheduler.zip

Смежные вопросы