Можете ли вы отслеживать, когда приложение Android было прекращено? - PullRequest
8 голосов
/ 29 сентября 2011

Посмотрел документацию по android и выяснилось, что у нас нет возможности узнать, когда приложение закрывается.Было ли это явно пользователем или автоматически операционной системой.

Ниже приведена документация onTerminate() , которая доступна только в эмулируемом сценарии.

public void onTerminate()

Поскольку: Уровень API 1

Этот метод предназначен для использования в эмулируемых средах процессов.Он никогда не будет вызываться на производственном устройстве Android, где процессы удаляются простым их уничтожением;при этом пользовательский код (включая этот обратный вызов) не выполняется.

У кого-нибудь есть какие-либо другие подходы, чтобы сообщить, когда пользователь закрывает приложение?

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

Ответы [ 3 ]

5 голосов
/ 29 сентября 2011

Не уверен, поможет ли это вам ...

В моем приложении я использую Activity.onDestroy () для очистки, которая мне нужна. У меня есть пара занятий - и в каждом из них onDestroy().

Это самое близкое к тому, что я делал, и оно действительно работает довольно хорошо.

3 голосов
/ 29 сентября 2011

Посмотрел документацию по Android, и оказалось, что у нас нет возможности узнать, когда приложение закрывается.Было ли это явно пользователем или автоматически операционной системой.

Пользователи не закрывают приложения на Android.

У кого-нибудь есть какие-либо другие подходы, чтобы сообщать, когдапользователь закрывает приложение.

Пользователи не закрывают приложения на Android.

В этом отношении Android ведет себя так же, как веб-браузер.Пользователи не закрывают веб-приложения в веб-браузерах.Они могут закрыть браузер.Они могут закрыть вкладку.Они могут нажать кнопку «Домой» и перейти на другой сайт / приложение.Они могут выбрать закладку и перейти на другой сайт / приложение.Они могут перетащить документ в браузер и просмотреть его.Они могут дважды щелкнуть значок на рабочем столе и просмотреть его.И они могут щелкнуть какую-нибудь ссылку «Выйти» на просматриваемом в настоящее время веб-сайте / приложении.Любое из этих действий приводит к тому, что пользователь покидает любой веб-сайт / приложение, в котором он находится, но ни одно из них не будет восприниматься как «закрытие» веб-сайта / приложения таким же образом, как может быть истолковано нажатие кнопки «Закрыть» в окне операционной системы настольного компьютера.как «закрытие» настольного приложения.

Как отмечает @Aleks G, существуют различные методы жизненного цикла, которые вы можете переопределить, чтобы узнать, что пользователь делает в отношении действия.onStop() указывает, что что-то еще заняло ввод переднего плана, и ваша текущая активность больше не видна.onUserLeaveHint() указывает, что пользователь нажал HOME.И так далее.Но это на уровне активности, а не на уровне приложения.

1 голос
/ 04 августа 2015

Создайте BaseActivity, расширяющий Activity, в вашем приложении и расширяет этот BaseActivity вместо Activity. В этом BaseActivity переопределяет метод onDestroy (). Нравится

 @Override
 protected void onDestroy() {
      super.onDestroy();
     //Write the code that you want to do if the application terminates
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...