取消使用setGroup创建的Bundle中的通知

时间:2017-08-31 21:02:48

标签: android notifications

我在使用以下内容创建的捆绑中堆叠了多个通知:

setGroup("groupname");

setGroupSummary(true);

方法

每个通知都有一个动作。动作pendingIntent中的意图包含可用于取消通知的通知ID。

当通知未捆绑到组中并显示在摘要通知中时,调用NotificationManager.cancel(id)会立即取消通知。

但是,如果通知已分组并且ARE汇总,则NotificationManager.cancel(id)不执行任何操作。

有谁能告诉我如何解决这个问题。

未决行动意图如下:

  Intent notificationSettingsIntent = new Intent(context.getApplicationContext(), NotificationSettingsActivity.class);
  notificationSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  notificationSettingsIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
  notificationSettingsIntent.putExtra("fromNotification",true);
  notificationSettingsIntent.putExtra("notif_id",counterOfValidNotifications+6666);
  //Log.d("FragmentCreate","Setting notif_id inside action button "+(counterOfValidNotifications+6666)+" for restid "+c.getInt(restidindex));
  PendingIntent notificationSettingsActivityPendingIntent = PendingIntent.getActivity(context,(int)(System.currentTimeMillis()%10000),notificationSettingsIntent,PendingIntent.FLAG_ONE_SHOT);

  notificationBuilder.addAction(R.drawable.ic_notifications_off_black_24dp,"Notification Options",notificationSettingsActivityPendingIntent);

此意图内的notif_id是在指定的活动中收到的,在这里我基本上称为取消(id)。

1 个答案:

答案 0 :(得分:0)

$("form").submit(function(evt){   
evt.preventDefault();
var referral_id=$("#submitbtn").data('referralid');
alert(referral_id);
var formData = new FormData($('#uploadforms')[0]);
console.log(formData);
$.ajax({
url: '<?php echo base_url("Upload_Files1"); ?>',
type: 'POST',
data: {referral_id: referral_id, files: formData},
async: false,
cache: false,
contentType: false,
enctype: 'multipart/form-data',
processData: false,
success: function (response) {
alert(response);
}
});
return false;
});

这还不够。如果您所有的通知都是在毫秒内创建的,那么它们将只有一个(int)(System.currentTimeMillis()%10000) 。您将标志设置为“单发”,因此在第一个标志之后甚至都无法发送。