2014-01-24 2 views
2

Я использую AlarmManager Android и планирую повторять тревогу с помощью elapsed_time_wakeup каждую минуту. Эта тревога срабатывает.Какова наилучшая практика запуска службы каждую минуту в Android?

Служба выполняет свою работу (pinging server (сервер Facebook в моем случае) для получения данных). Затем я вызываю onDestroy() службы. Итак, каждую минуту Начало службы -> Работает ли -> onDestroy()

Это лучший способ сделать это в android?

+2

Лучший способ получить уведомление об изменении на сервере - использовать [GCM] (http://developer.android.com/google/gcm/index.html), поэтому вам не нужно сохранять устройство бодрствуйте и беспорядок с батареей. – zapl

+0

Да, правда. Но если бы я сделал это по телефону. Это лучший способ? – Zer0

+1

Если это то, что вам нужно сделать, да. Простой сервис намерения не нужно обрабатывать ondestroy, он просто отключается после обработки отступа. – zapl

ответ

1

Вам действительно нужно новое обслуживание каждую минуту? Я думаю, вы хотите начать единую службу. Эта служба делает каждую минуту проверку на сервере и сообщает об успехе или ошибке? Вы хотите, чтобы простой всегда работающий сервис выполнялся периодически, а не периодический запуск службы. В этом случае запуск новой службы потребует больше ресурсов, чем сама проверка.

Просто убедитесь, что обслуживание работает. Это может произойти до тех пор, пока вы не назовете stopSelf(), и начальная активность также не остановит его. Возможно, вы захотите запустить его как

private ping() { 
    // periodic action here. 
    scheduleNext(); 
} 

private scheduleNext() { 
    mHandler.postDelayed(new Runnable() { 
    public void run() { ping(); } 
    }, 60000); 
} 

int onStartCommand(Intent intent, int x, int y) { 
    mHandler = new android.os.Handler(); 
    ping(); 
    return STICKY; 
} 

Возможно, вам потребуется периодическая проверка только на подключение к Wi-Fi или соединение. И, возможно, прекратить проверку, когда вы уже знаете о проблеме и решаете ее. Вы можете использовать startForeground() из Сервиса, чтобы начать какую-то деятельность, чтобы управлять им и отображать результаты.

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

  • Нет связанных вопросов^_^