addAction被调用时移除通知?

我在通知中添加了两个操作按钮,当我单击其中一个按钮时,他们会执行所需的操作,但通知仍保留在通知抽屉中。 我知道当点击操作按钮时,可以从通知抽屉中删除通知,因为这是Gmail的功能。 如果我点击主要通知,它会打开应用程序并从通知抽屉中删除通知。

这是我的代码片段:

Intent completeIntent = new Intent(getApplicationContext(), MarkComplete.class);
        completeIntent.putExtra("rowid", inrowid);
        completeIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

PendingIntent markCompleteIntent = PendingIntent.getActivity(getApplicationContext(), inrow, completeIntent, PendingIntent.FLAG_UPDATE_CURRENT);

builder.setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("Title")
                .setContentText("text")
                .setContentIntent(notificationReleaseIntent)
                .setPriority(Notification.PRIORITY_HIGH)
                .setAutoCancel(true)
                .addAction(R.drawable.complete, "Mark Complete", markCompleteIntent);

编辑 - 正如zionpi指出我需要调用notification.cancel(); 一旦addAction按钮被点击,删除通知。 我只是将此方法添加到PendingIntent指向的类中。

public static void CancelNotification(Context ctx, int notifyId) {
    String  s = Context.NOTIFICATION_SERVICE;
    NotificationManager mNM = (NotificationManager) ctx.getSystemService(s);
    mNM.cancel(notifyId);
}

所以你想删除你的通知,初步是有一个通知ID。
然后调用类似于下面的方法来消除它。

 public static void CancelNotification(Context ctx, int notifyId) {
        String  s = Context.NOTIFICATION_SERVICE;
        NotificationManager mNM = (NotificationManager) ctx.getSystemService(s);
        mNM.cancel(notifyId);
    }

你可能想要参考这个和这个职位。

链接地址: http://www.djcxy.com/p/73667.html

上一篇: Remove Notification when addAction called?

下一篇: How to generate POCO proxies from an existing database