Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在通知清除时重置notificationmanager编号_Android_Notifications - Fatal编程技术网

Android 如何在通知清除时重置notificationmanager编号

Android 如何在通知清除时重置notificationmanager编号,android,notifications,Android,Notifications,当用户单击通知时,清除通知号码的最佳方法是什么?我说的是最好的办法,但实际上我还没有找到任何办法。当用户点击通知时,我会启动一个内置的活动,而不是我写的东西,所以我不能用那种方式清除它。我已将通知管理器的标志设置为清除 NotificationManager notification . . . notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.number++;

当用户单击通知时,清除通知号码的最佳方法是什么?我说的是最好的办法,但实际上我还没有找到任何办法。当用户点击通知时,我会启动一个内置的活动,而不是我写的东西,所以我不能用那种方式清除它。我已将通知管理器的标志设置为清除

   NotificationManager notification
    .
    .
    .
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.number++;
    nm.notify(1,notification);

但无论我做什么,Notification.number都会不断增加,并且不会重置为0

您可以使用作为应用程序一部分的中间活动,因此可以重置变量,然后启动内部活动

因此,这条链条将是


通知--starts-->中间活动--starts-->内置活动

我正在使用@commonware建议的内容和在此扩展应用程序对象的组合


编辑:进一步的测试表明,实际上这不起作用,因为每次通知都会调用BroadcastReceiver,而且每次通知都会重置号码,所以号码永远不会正确。

它不需要是中间活动。
通知
可以为广播
意图
设置一个
挂起内容
,由
广播接收器
拾取,该接收器清除
通知
并调用另一活动上的
startActivity()
。这样,就不会有UI问题。但是,一个活动(或可以想象的服务)也可以工作,所以我可以设置一个广播接收器,只清除通知计数?我以为你只能修改自己活动中的通知?