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。但您的代码用于从状态栏取消通知。您确定还清除了挂起的意图吗?但您的代码用于从状态栏取消通知。你确定这也很清楚吗?