Вам действительно нужно новое обслуживание каждую минуту? Я думаю, вы хотите начать единую службу. Эта служба делает каждую минуту проверку на сервере и сообщает об успехе или ошибке? Вы хотите, чтобы простой всегда работающий сервис выполнялся периодически, а не периодический запуск службы. В этом случае запуск новой службы потребует больше ресурсов, чем сама проверка.
Просто убедитесь, что обслуживание работает. Это может произойти до тех пор, пока вы не назовете 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() из Сервиса, чтобы начать какую-то деятельность, чтобы управлять им и отображать результаты.
Лучший способ получить уведомление об изменении на сервере - использовать [GCM] (http://developer.android.com/google/gcm/index.html), поэтому вам не нужно сохранять устройство бодрствуйте и беспорядок с батареей. – zapl
Да, правда. Но если бы я сделал это по телефону. Это лучший способ? – Zer0
Если это то, что вам нужно сделать, да. Простой сервис намерения не нужно обрабатывать ondestroy, он просто отключается после обработки отступа. – zapl