我正在使用AsyncTask下载apk文件,然后在post execute方法下安装它。
预执行 {
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)
}
在此线程运行的同时(例如通过网络下载非常大的文件)我将允许用户开始另一次下载。在这种情况下,我想显示2个通知,而不是重复使用相同的通知ID。当我在Do In Background和Post Execute线程中引用其通知ID时,有2个唯一通知ID的最佳方法是什么?感谢
答案 0 :(得分:2)
小睡休息后找到解决方案。一定是太累了才弄清楚
我在每个private int notification_ID
中放置了一个局部变量AsyncTask
创建通知后,插入共享首选项(Notification_ID + 1)
Do In Background和Post Execute在更新此通知时仍然使用此私有变量
当一个新的AsyncTask
线程启动时,它将首先从共享首选项读取,这将是一个新值(假设第一个是0,第二个将是0 + 1 = 1)然后当它在后台执行时Post Execute尝试访问其notification_ID
,它将访问自己的私有变量,其值为1,因此不会与第一次或后续通知冲突