Android: STOP SERVICES и тревоги, когда приложение заканчивается

StackOverflow https://stackoverflow.com/questions/3400839

  •  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

Это будет называться во многих случаях, когда-нибудь после того, как больше нет запущенных компонентов. В вашем случае есть беговые компоненты (услуги).

Но документация очень ясна: «Никогда не зависит от этого метода, называемого; во многих случаях ненужный процесс приложения просто будет убит ядром без выполнения любого приложенного кода»

Единственный случай, когда я знаю, когда он не будет вызван, заключается в том, что процесс прекращается, и в этом случае ваш сервис будет ликвидирован, хотя и запланированные аварийные сигналы не будут.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top