使用唯一的requestCode取消PendingIntent

时间:2013-10-18 22:04:52

标签: android android-intent notifications

我在取消pendingintent时遇到了麻烦。现在我像这样创建我的未决意图:

Intent intent = new Intent(_self, NotificationService.class); PendingIntent pi = PendingIntent.getService(this, task.getID, intent, 0);

task.getID在这里是一个唯一的int。稍后在我的应用程序中,用户可以编辑“任务”并可以决定取消通知(pendingintent)。我试着像这样取消pendingintent:

Intent intent = new Intent(_self, NotificationService.class); PendingIntent pIntent = PendingIntent.getBroadcast(_self, task.getID, intent , PendingIntent.FLAG_NO_CREATE);
pIntent.cancel();

但它不起作用!通知仍然显示。在这种情况下,task.getID引用之前创建的唯一ID。

我尝试了几个不同的参数,PendingIntent.FLAG_NO_CREATE返回null,FLAG_UPDATE_CURRENT不起作用,FLAG_CANCEL_CURRENT也没有。有人可以帮助我,看看我做错了什么?

2 个答案:

答案 0 :(得分:0)

您需要重新创建待处理的意图。当您想要取消它时,您需要创建第一个意图。

看看:Cancelling a PendingIntent

答案 1 :(得分:0)

您正在尝试使用PendingIntent创建服务,并尝试取消广播。它永远不会奏效。

您需要使用您尝试取消的PendingIntent来获取服务。