繁体   English   中英

未调用 onDestroy() 时如何清除状态栏通知?

[英]how to clear status bar notification when onDestroy() not being called?

我最近制作了一个在线广播应用程序。 我实现了一个状态栏通知作为音乐播放器通知。 我使用onDestroy()清除通知,但问题是有时没有调用onDestroy()

如何以编程方式从状态栏清除状态栏通知?

我制作了清除通知的代码,所以请不要发布该代码。 我想知道如何在没有调用onDestroy()时清除状态栏通知。 我尝试了这个问题的所有相关 StackOverflow 链接。 任何帮助将不胜感激。

你理解错了。 您很可能根本不想关心onDestroy() (因为当您认为它是时它不会被调用)。 您会知道您的应用程序何时处于最前面(因此不需要通知,因为您的活动可见)或在后台运行(因此您需要通知)。 为此,我将使用扩展应用程序并使用ActivityLifecycleCallbacks

如果您像这样创建Notification

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(TestActivity.this);
int NOTIFY_ID = 0;

        builder
                .setSmallIcon(R.drawable.some_icon)
                .setTicker(songTitle)
                .setOngoing(true)
                .setContentTitle("Playing")
                .setContentText(songTitle);

        notification = builder.build();

        notificationManager.notify(NOTIFY_ID, notification);

然后你可以像这样取消(删除)这个Notification

  notificationManager.cancel(NOTIFY_ID);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM