Действительно ли возможно остановить все запущенные сервисы, когда пользователь нажимает кнопку "Домой"?
Я использую:
startService(new Intent(ClassName.this, ClassName2.class));
stopService(new Intent(ClassName.this, ClassName2.class));
Это означает, что я должен буду так или иначе добавить 'stopService ()' для 7 + моих классов приложения, я исследовал эту тему, и я думаю, что существует 'onTerminate', но все еще не уверен, как это должно быть реализовано.
Любая справка или подсказки ценились бы!Спасибо!
Можно ли остановить все запущенные службы, когда пользователь нажимает кнопку "Домой" ?
Нет напрямую. Во-первых, у вас нет возможности узнать, что они нажали HOME.
Если вы хотите, чтобы служба работала только во время ее использования, подумайте об избавлении от startService ()
. Вместо этого используйте bindService ()
в методах onStart ()
действий, которым требуется услуга, и вызовите unbindService ()
в соответствующих им onStop ()
методы. Вы можете использовать BIND_AUTO_CREATE
, чтобы служба запускалась лениво, когда это необходимо, и Android автоматически остановит службу после того, как все соединения будут разорваны.
Если вы хотите, чтобы службы останавливались, когда пользователь покидает ваше приложение, я бы спросил, хотите ли вы вообще использовать службы. Возможно, вы просто делаете свое приложение более сложным, чем нужно.
Кроме того, эта строка действительно вызывает сомнения:
startService(new Intent(ClassName.this, ClassName2.class));
Вы создаете намерение, действие которого является именем класса одного класса, а URI данных - именем класса другого класса ...! Может быть, вы имеете в виду что-то вроде "новое намерение (контекст, MyService.class)"?