【问题标题】:Clear notification when app stops android studio应用停止 android studio 时清除通知
【发布时间】:2020-01-20 20:33:08
【问题描述】:

我正在使用 exoplayer 库开发一个用于广播流媒体的应用程序。 所以,我想在关闭应用程序时清除(删除)exoplayer 通知栏(带有播放/停止按钮)。 现在,我关闭了应用程序,但通知栏仍然出现,并且不会通过向左/向右滑动来关闭。

我尝试了以下源代码,但它不起作用。

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

我用cancelAll()等方法试过了,但也没有用。

它适用于 onPause()onStop() 方法,但我只想这样做 onDestroy()

提前致谢。

【问题讨论】:

    标签: android android-studio notifications android-notifications exoplayer


    【解决方案1】:

    您可以尝试将关闭通知的代码放在super.onDestroy()之前 如果它仍然不起作用,还有另一种解决方案,您基本上需要创建一个服务,该服务将在您的应用程序关闭时“监听”,您可以将自己的自定义逻辑放入其中。见这里link。这可能有点矫枉过正,但我​​在我的应用程序中使用了这个解决方案并且它正在工作。

    【讨论】:

    • 服务如何知道应用程序何时关闭?
    • 您基本上是在应用程序关闭时将您的服务注册到一个事件中。意图将发送到您的服务,您可以对其做出反应。在我在帖子中提供的链接中查看更多详细信息。
    【解决方案2】:

    如果您使用的是 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      相关资源
      最近更新 更多