Android: STOP SERVICES и тревоги, когда приложение заканчивается
-
25-09-2019 - |
Вопрос
У меня есть приложение, которое состоит из нескольких мероприятий. Когда приложение запускается, некоторые тревоги запланированы с использованием AlarmManager
И некоторые услуги начинаются:
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
a.setInexactRepeating(...)
....
Я хотел бы знать любой способ Гарантия Каждое обслуживание останавливается, и каждая сигнализация незнавалась, когда пользователь выходит на приложение.
Проблема в том, что пользователь может оставить приложение из разных действий, и мне не нравится идея переопределить onDestroy
метод в каждой деятельности. Есть ли известный Intent
Я могу получить, когда заканчивается приложение?
Я также обнаружил, что приложение Android может иметь класс, который простирается от Application
, с А. onTerminate
Метод:
public class MyApplication extends Application {
@Override
public void onTerminate() {
...
}
}
Но документация очень ясна: «Никогда не зависит от этого метода, называемого; во многих случаях ненужный процесс приложения просто будет убит ядром без выполнения любого приложенного кода»
Любое предложение высоко ценится.
Решение
Я хотел бы знать какой-либо способ гарантировать, что каждая услуга останавливается, и каждая сигнализация незапланирована, когда пользователь выходит на приложение.
Там нет такой вещи, как «пользователь выходит на приложение» в Android.
Есть ли какая-то известная цель, которую я могу получить, когда приложение заканчивается?
Нет.
Я также обнаружил, что приложение для Android может иметь класс, который простирается из приложения, с методом Onterminate
Это будет называться во многих случаях, когда-нибудь после того, как больше нет запущенных компонентов. В вашем случае есть беговые компоненты (услуги).
Но документация очень ясна: «Никогда не зависит от этого метода, называемого; во многих случаях ненужный процесс приложения просто будет убит ядром без выполнения любого приложенного кода»
Единственный случай, когда я знаю, когда он не будет вызван, заключается в том, что процесс прекращается, и в этом случае ваш сервис будет ликвидирован, хотя и запланированные аварийные сигналы не будут.