Как получить уведомление, когда приложение закрыто в Android

Я хочу показать Notification когда мое приложение будет удалено из списка последних приложений.

Я пытался поместить код для этого в onStop() а также onDestroy() но ни один не работает. onStop() вызывается, как только приложение закрывается (хотя оно все еще находится в списке последних приложений).

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

1 ответ

Решение

Когда вы проводите приложение из последних, его задача мгновенно убивается. Методы жизненного цикла не будут вызываться.

Чтобы получить уведомление, когда это произойдет, вы можете начать придерживаться Service и переопределить его onTaskRemoved() метод.

Из документации onTaskRemoved():

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

Например:

public class StickyService extends Service {
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY;
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onTaskRemoved(Intent rootIntent) {
        Log.d(getClass().getName(), "App just got removed from Recents!");
    }
}

Регистрация в AndroidManifest.xml:

<service android:name=".StickyService" />

И начать его (например, в onCreate()):

Intent stickyService = new Intent(this, StickyService.class);
startService(stickyService);
Другие вопросы по тегам