Я написал простой код для проверки использования сервиса.
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("msg","Service Started");
if(intent == null)
Log.w("msg","Service Intent NULL");
g = (GlobalVar) getApplicationContext();
try {
Thread thread = new Thread(new Job());
thread.start();
} catch (Exception ex) {
Log.e("msg", ex.getMessage());
}
return START_STICKY;
}
В моей активности две кнопки. Одна кнопка запускает службу с помощью метода startService (Intent intent), а другая останавливает ее с помощью метода stopService (Intent intent). 1. Я нажал кнопку startButton, и в Logcat распечатывается сообщение Служба запущена. На этот раз намерение не будет нулевым. 2. Теперь я перехожу в Настройки> Приложения> Запущенные службы эмулятора, нахожу свою службу и останавливаю ее. Сообщение Служба остановлена печатается в Logcat, который я написал в методе службы onDestroy ().
Вот часть, которую я не понимаю.
Система Android перезапускает службу через несколько секунд, и на этот раз сообщение Служба запущена не печатается. В документации указано, что намерение будет нулевым. НО сообщение Service Intent NULL также не печатается.
Как я узнаю, что система Android перезапускает службу?
Я напечатал несколько сообщений в теме, которую запускает моя служба. Эти сообщения начинают автоматически печататься в logcat через несколько секунд после остановки службы в настройках эмулятора.
Есть идеи, почему эти сообщения LogCat НЕ печатаются?