我正在我的应用程序中实现GCM并保留通知的散列以跟踪通知阴影中的内容(我必须根据用户是否进入应用程序来更改意图)。
我为所有通知设置了deleteIntent PendingIntent。所有这一切都是从我的本地哈希中删除通知,因此它将不再更新。如果我清除所有内容或刷卡以删除通知,则意图被解雇。但是,我还将通知设置为自动取消。单击通知不会触发我的通知的deleteIntent。
我的问题是,当我的通知被自动取消时,有什么方法可以收到通知吗?
答案 0 :(得分:19)
这个错误has been reported,但看起来根本没有被调查过。解决这个问题就是我做的事情:
例如:
Notification.Builder builder = new Notification.Builder(context)
// Set other properties (not auto-cancel)
.setContentIntent(PendingIntent.getBroadcast(context, 0, new Intent(NOTIFICATION_CLICKED_ACTION), 0))
.setDeleteIntent(PendingIntent.getBroadcast(context, 0, new Intent(NOTIFICATION_DELETED_ACTION), 0));
notificationManager.notify(NOTIFICATION_ID, builder.build());
if (intent.getAction().equals(NOTIFICATION_CLICKED_ACTION)) {
startActivity(new Intent(context, MyActivity.class));
notificationManager.cancel(NOTIFICATION_ID);
}
// Do deletion behaviour here (for both click and delete actions)
答案 1 :(得分:2)
这是Android SDK文档中描述的here中DeleteIntent的正确行为:
提供PendingIntent以在清除通知时发送 明确由用户。
只有当用户通过滑动或使用通知菜单的“全部清除”功能明确清除通知时,才会调用DeleteIntent。点击通知将仅触发ContentIntent,如果AutoCancel设置为True。
答案 2 :(得分:1)