Очистить уведомление, когда приложение останавливается android студия - PullRequest
0 голосов
/ 20 января 2020

Я занимаюсь разработкой приложения для радиопотоков с использованием библиотеки exoplayer. Итак, я хочу очистить (удалить) панель уведомлений exoplayer (с кнопками воспроизведения / остановки), когда я закрываю приложение. Теперь я закрываю приложение, но панель уведомлений по-прежнему отображается и не закрывается с проведением пальцем влево / вправо.

Я пробую следующий исходный код, но он не работает.

protected void onDestroy() { super.onDestroy(); NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancel(NOTIFICATION_ID); }

Я пробовал это методом cancelAll() et c, но он тоже не работает.

Он работает с методами onpause () и onstop (), но я хочу сделать это Только onDestroy ().

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Если вы используете AndroidX (если это не так, возможно, вам будет удобно выполнить миграцию), вы можете использовать LifecycleObserver, который будет вызываться всякий раз, когда приложение закрывается, независимо от того, на каком экране вы находитесь. Вы можете реализовать его в своем Application классе следующим образом:

public class YourApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        // ...
        ProcessLifecycleOwner.get().getLifecycle().addObserver(new AppLifeCycleListener());
        // ...
    }

    // ...

    public class AppLifeCycleListener implements LifecycleObserver {
        @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
        public void onAppLaunched() {
            // ...
        }

        @OnLifecycleEvent(Lifecycle.Event.ON_START)
        public void onMoveToForeground() {
            // ...
        }

        @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
        public void onMoveToBackground() {
            // Dismiss notifications here
        }
    }
}

Обратите внимание, вам понадобится зависимость androidx.lifecycle в вашем приложении build.gradle

0 голосов
/ 21 января 2020

Вы можете попытаться разместить код отклонения уведомления перед super.onDestroy(), если оно все еще не работает, есть другое решение, вам нужно создать службу, которая будет "прослушивать", когда ваше приложение закрывается, и вы можете поставить ваш собственный логин c в него. Смотрите здесь ссылка . Это может быть излишним, но я использовал это решение для своего приложения, и оно работает.

...