Android 未清除通知中的挂起意图
请查看我的挂起的意图代码Android 未清除通知中的挂起意图,android,push-notification,google-cloud-messaging,android-pendingintent,Android,Push Notification,Google Cloud Messaging,Android Pendingintent,请查看我的挂起的意图代码 notificationIntent.putExtra("is_from_notification", true); notificationIntent.putExtra("push_message_id", push_message_id); notificationIntent.putExtra("open_target", open_target); notification
notificationIntent.putExtra("is_from_notification", true);
notificationIntent.putExtra("push_message_id", push_message_id);
notificationIntent.putExtra("open_target", open_target);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(context,notifyID, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification noti = new NotificationCompat.Builder(context)
.setSmallIcon(icon_small)
.setTicker(message)
.setLargeIcon(largeIcon)
.setWhen(System.currentTimeMillis())
.setContentTitle(title)
.setContentText(message)
.setContentIntent(contentIntent)
.setAutoCancel(true).build();
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(notifyID, noti);
我的问题是,我应该在哪里以及如何清除这个悬而未决的意图。在应用程序最近执行的任务中,它会一直保持不变。要清除使用,请执行以下操作:
编辑:
PendingIntent.getActivity(context,notifyID, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT).cancel();
将这一行放在代码中的某个位置,您希望取消挂起的内容
注意:意图必须与您的挂起内容具有相同的名称和ID,在您的情况下:notifyID
和contentIntent
注意:挂起内容本身只是对系统维护的令牌的引用,该令牌描述了用于检索它的原始数据。这意味着,即使其所属应用程序的进程被终止,PendingEvent本身仍然可以从已提供给它的其他进程中使用。如果创建应用程序稍后重新检索相同类型的PendingEvent(相同的操作、相同的意图操作、数据、类别和组件以及相同的标志),则它将收到表示相同令牌的PendingEvent(如果该令牌仍然有效),因此可以调用cancel()将其删除
-取消当前活动的挂起内容。只有拥有PendingEvent的原始应用程序才能取消它
应帮助您清除使用:
编辑:
PendingIntent.getActivity(context,notifyID, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT).cancel();
将这一行放在代码中的某个位置,您希望取消挂起的内容
注意:意图必须与您的挂起内容具有相同的名称和ID,在您的情况下:notifyID
和contentIntent
注意:挂起内容本身只是对系统维护的令牌的引用,该令牌描述了用于检索它的原始数据。这意味着,即使其所属应用程序的进程被终止,PendingEvent本身仍然可以从已提供给它的其他进程中使用。如果创建应用程序稍后重新检索相同类型的PendingEvent(相同的操作、相同的意图操作、数据、类别和组件以及相同的标志),则它将收到表示相同令牌的PendingEvent(如果该令牌仍然有效),因此可以调用cancel()将其删除
-取消当前活动的挂起内容。只有拥有PendingEvent的原始应用程序才能取消它
应该可以帮助你只要打电话给notificationManager.cancel(notifyId) 或 调用notificationManager.cancelAll()
希望有帮助。只要打电话给notificationManager。取消(notifyId) 或 调用notificationManager.cancelAll()
希望有帮助。没有收到您的问题…您的通知没有被清除,或者您想取消此挂起的意图..???您是否收到使用上述代码的通知?是的,收到通知但无法取消挂起的意图。您好,当您收到错误消息,如“应用程序正在执行最近的任务”。@Hemant我已编辑了我的答案,要取消您的
挂起内容
请使用这一行代码,您想在哪里取消您的挂起内容
。未收到您的问题…您的通知未被清除,或者您想取消此挂起的意图..???您是否收到使用上述代码的通知?收到通知但无法取消挂起的意图。当您收到类似“应用程序正在执行最近的任务”的错误消息时,您好?@Hemant我已经编辑了我的答案,要取消您的挂起内容
请使用这一行代码,无论您想取消您的挂起内容
。否。这没有帮助。@Hemant这只是把你推向正确的方向。但我已经编辑了我的答案供你使用。现在应该可以了!它不工作,我将pendingent.getActivity(getApplicationContext(),notifyID,getIntent(),pendingent.FLAG_UPDATE_CURRENT)。取消();在当前的活动中。当前活动是从挂起的intent调用的。这是错误的,getIntent()必须是contentIntent。这非常重要,因为这表示应取消名为contentIntent
的pendingIntent
!只需将我的行复制到您的代码中即可。contentintent位于GCMBaseIntentService中,我想从由pending intent.No启动的活动中取消pending intent。这没有帮助。@Hemant这只是把你推向正确的方向。但我已经编辑了我的答案供你使用。现在应该可以了!它不工作,我将pendingent.getActivity(getApplicationContext(),notifyID,getIntent(),pendingent.FLAG_UPDATE_CURRENT)。取消();在当前的活动中。当前活动是从挂起的intent调用的。这是错误的,getIntent()必须是contentIntent。这非常重要,因为这表示应取消名为contentIntent
的pendingIntent
!只需将我的行复制到您的代码中。contentintent位于GCMBaseIntentService中,我想从由pending intent启动的活动中取消pending intent。但您的代码用于从状态栏取消通知。您确定还清除了挂起的意图吗?但您的代码用于从状态栏取消通知。你确定这也很清楚吗?