Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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存储多个通知ID,并允许同时显示多个通知_Android_Notifications - Fatal编程技术网

Android存储多个通知ID,并允许同时显示多个通知

Android存储多个通知ID,并允许同时显示多个通知,android,notifications,Android,Notifications,我使用的是一个AsyncTask,它下载一个apk文件,然后在post execute方法中安装它 预执行 { } 在后台做什么 { } 后执行 { } 在这个线程运行的同时(例如通过网络下载一个非常大的文件),我允许用户开始另一个下载。在这种情况下,我希望显示2个通知,而不是重复使用相同的通知ID。当我在后台Do和执行后线程中引用其通知ID时,有2个唯一的通知ID不冲突的最佳方法是什么?谢谢在小睡片刻后找到了解决方案。一定是太累了,想不出来 我在每个AsyncTask 创建通知后,插入共享首选

我使用的是一个AsyncTask,它下载一个apk文件,然后在post execute方法中安装它

预执行 {

}

在后台做什么 {

}

后执行 {

}


在这个线程运行的同时(例如通过网络下载一个非常大的文件),我允许用户开始另一个下载。在这种情况下,我希望显示2个通知,而不是重复使用相同的通知ID。当我在后台Do和执行后线程中引用其通知ID时,有2个唯一的通知ID不冲突的最佳方法是什么?谢谢

在小睡片刻后找到了解决方案。一定是太累了,想不出来

我在每个
AsyncTask

创建通知后,插入共享首选项(通知\u ID+1)
更新此通知时,“后台执行”和“后期执行”仍使用此私有变量

当一个新的
AsyncTask
线程启动时,它将首先从共享首选项中读取一个新值(假设第一个值为0,第二个值为0+1=1)然后,当其后台Do和后期执行尝试访问其
通知\u ID
时,它将使用值1访问自己的私有变量,因此不会与第一个或后续通知冲突

Get a notification variable from shared preference and adds +1 to it
Create a new notification based on this variable
 Update this notification based on its ID -1 (to refer to initial notification ID)
Update this notification based on its ID -1 (to refer to initial notification ID)