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

时间:2016-03-21 07:36:52

标签: android android-activity notifications android-lifecycle ondestroy

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:-1)

如果你这样创建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);