Как определить, что приложение удалено с последних страниц (обзорный экран) на Android Oreo?

До сих пор (до Android Oreo) я занимался удалением из приложения последних Service.onTaskRemoved(), лайк:

public class OnAppRemovedFromRecentListener extends Service {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return Service.START_NOT_STICKY;
    }

    @Override
    public void onTaskRemoved(Intent rootIntent) {
        super.onTaskRemoved(rootIntent);
        // there I am handling removing from recents
    }
}

но теперь, когда я запускаю приложение на Android Oreo, я никак не могу добиться того же поведения. Пробовал 2 подхода:

  1. Если все еще используете Service затем сервис исчезает через некоторое время бездействия, когда приложение находится в фоновом режиме, а затем, если пользователь удаляет приложение из последних onTaskRemoved не называется.
  2. Если переключиться с Service в JobIntentService и запуск этого сервиса через JobIntentServiceLauncher.enqueueWork затем почти сразу OnAppRemovedFromRecentListener уничтожается и onTaskRemoved также не вызывается, когда приложение удаляется из последних

Кто-нибудь знает способ, как обнаружить удаление моего приложения из последних на Android Oreo, который будет работать всегда?

1 ответ

Если вы используете мероприятие, я думаю, что вы можете использовать методы onDestroy() или onStop() для правильного определения очистки или закрытия приложения

Другие вопросы по тегам