2015-02-23 100 views
1

我的应用程序创建几个通知,并与PendingIntents的帮助它会带你到一个特殊的活动。这一切都工作得很好,我唯一的问题是,我希望通知只能在用户触摸时删除,而不是当用户使用“全部清除”按钮(通知栏顶部的X)时才会被删除。Android:删除通知只有当触摸不清除“清除所有”按钮

目前我使用的

setAutoCancel(true); 

方法。它会在用户触摸时删除通知,但也会在按下“Clear ALl”按钮时删除通知。我的问题是现在,如果我能够抑制通过“全部清除”按钮删除的任何方式。

如果你想知道为什么我想要这个,我创建了一个应用程序,它允许你使用通知作为一种提醒。这时“清除按钮”很烦人,因为它会删除所有提醒通知。

Thx的帮助,如果你想要任何额外的代码,只需写它。

回答

3

您可以通过将通知设置为正在进行,然后在PendingIntent触发时取消通知来完成此操作。

正在进行的通知不能由用户解雇,因此您的应用程序或服务必须注意取消它们。

假设你正在使用Notification.Builder创建您的通知,只是要求build()之前添加以下行。

.setOngoing(true) 

当你要删除的通知,对NotificationManager服务与发布通知时所使用的相同的ID叫cancel()