在用户看到通知后是否可以删除/取消通知?

时间:2012-02-07 09:31:34

标签: android

我目前正在制作一个使用通知的应用程序。

我能够显示通知,并在用户点按通知列表时将其删除。但是,如果用户看到它们但我没有对它们采取行动,我也希望我的通知消失。

例如,用户显示通知列表,然后点击不是我的通知,或者只是关闭通知列表。在这些情况下,即使他没有对我的通知做任何事情,我也会尝试让我的通知取消,并在下次用户显示通知列表时不显示。

这可能吗?

谢谢! :d

(编辑:如果你想知道我为什么这么想,一个非常简单的解释是:将通知视为吐司而不是;有更长存在的吐司,并确保用户实际上看到它之前消失。)

2 个答案:

答案 0 :(得分:0)

通知非常简单,取消方法

public void cancel (int id)

取消之前显示的通知。如果它是瞬态的,视图将被隐藏。如果它是持久的,它将从状态栏中删除。

public void cancel (String tag, int id)

取消之前显示的通知。如果它是瞬态的,视图将被隐藏。如果它是持久的,它将从状态栏中删除。

public void cancelAll ()

取消之前显示的所有通知。有关详细行为,请参阅cancel(int)。

详情如下: http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int

<强>更新

如果您想在用户看到该通知时取消通知,则会有一个标志,FLAG_AUTO_CANCEL:

Notification notification1 = new Notification(R.drawable.icon, "test",
    System.currentTimeMillis());
notification1.flags |= Notification.FLAG_AUTO_CANCEL;

答案 1 :(得分:0)

您可以通过向cancel方法提供其ID来删除通知:

((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).cancel(your_notification);

但是,我不建议您这样做,因为它可能会使用户感到困惑