当我们的APP集成完成极光推送之后,我们要求在APP双击退出的同时清除所有的发送过来的通知,极光API
中提供了几种方法:
1、clearAllNotifications
这种方法的作用是清除所有JPush推送的通知,用法也非常的简单:
JPushInterface.clearAllNotifications(this);
但是本人没有用这种方法(没有成功,不清楚咋回事)
我用的下面这种方法。
2、clearNotificationById
这种方法如果用于清除某个特定的通知会很方便,只需要获取到要清除的通知的ID就可以了
JPushInterface.clearNotificationById(this,notifactionId);
但是如果用于通知的全部清除就比较麻烦了,下面是我使用的方法:
(1)先在APP的Application中定义一个List集合,用以存储推送过来的通知的ID:
public static List<Integer> list = new ArrayList<>();
(2)在接收推送的Receiver中将通知的ID存储到Application中的List集合里:
MyApplication.list.add(notifactionId);
(3)在双击退出的地方进行如下代码操作:
for (int i = 0; i < MyApplication.list.size(); i++) {
JPushInterface.clearNotificationById(this,MyApplication.list.get(i));
}
这样同样可以实现通知的全部清除。
注:本人菜鸟一枚,第一种方法没有实现不知道什么原因,欢迎各位大神留言指导。