Остановите все запущенные сервисы на приложение близко / выход

Действительно ли возможно остановить все запущенные сервисы, когда пользователь нажимает кнопку "Домой"?

Я использую:

startService(new Intent(ClassName.this, ClassName2.class));
stopService(new Intent(ClassName.this, ClassName2.class));

Это означает, что я должен буду так или иначе добавить 'stopService ()' для 7 + моих классов приложения, я исследовал эту тему, и я думаю, что существует 'onTerminate', но все еще не уверен, как это должно быть реализовано.

Любая справка или подсказки ценились бы!Спасибо!

6
задан Rad The Mad 18 April 2010 в 00:27
поделиться

2 ответа

Можно ли остановить все запущенные службы, когда пользователь нажимает кнопку "Домой" ?

Нет напрямую. Во-первых, у вас нет возможности узнать, что они нажали HOME.

Если вы хотите, чтобы служба работала только во время ее использования, подумайте об избавлении от startService () . Вместо этого используйте bindService () в методах onStart () действий, которым требуется услуга, и вызовите unbindService () в соответствующих им onStop () методы. Вы можете использовать BIND_AUTO_CREATE , чтобы служба запускалась лениво, когда это необходимо, и Android автоматически остановит службу после того, как все соединения будут разорваны.

16
ответ дан 8 December 2019 в 12:58
поделиться

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

Кроме того, эта строка действительно вызывает сомнения:

startService(new Intent(ClassName.this, ClassName2.class));

Вы создаете намерение, действие которого является именем класса одного класса, а URI данных - именем класса другого класса ...! Может быть, вы имеете в виду что-то вроде "новое намерение (контекст, MyService.class)"?

2
ответ дан 8 December 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: