我在我的应用程序中使用bitmapfun项目(gridview),当我测试时,我发现了一个问题。重现此问题的步骤如下:
在logcat中,我看到所有图像都在imageWorker的cancelPotentialWork()中被取消,它们永远不会启动。我的猜测是,之前的bitmapworkerTask(负责下载)正在发生一些事情,并且与新任务发生冲突。在我按下backbutton的应用程序中,我清除了所有缓存。但这不是问题的原因,因为我也测试了原始bitmapfun中的相同场景,问题也出现了!我该如何解决这个问题?我还将项目的多线程asynctask更改为单个线程!有没有办法清除所有imageview引用并取消所有正在运行的任务?
对不起我的英语,并且没有提供有关bitmapfun项目性质的更多信息,但它会非常扩展我的问题!向我提问!
编辑:为了重现问题,每次使用菜单选项离开活动时,最好清除缓存。如果您按照步骤1-3进行一次,也不确定是否会出现此问题。也许你必须重复它们!
Edit2(附加帮助):当我开始没有问题的活动时,第一张图片的logcat如下:
04-24 02:31:56.400: D/ImageWorker(25625): doInBackground - starting work
04-24 02:31:56.400: D/ImageFetcher(25625): processBitmap - https://lh3.googleusercontent.com/--L0Km39l5J8/URquXHGcdNI/AAAAAAAAAbs/3ZrSJNrSomQ/s160-c/Antelope%252520Butte.jpg
04-24 02:31:56.400: D/ImageFetcher(25625): processBitmap, not found in http cache, downloading...
当我开始有问题的活动时,logcat是这样的:
04-24 02:28:07.970: D/ImageWorker(24014): cancelPotentialWork - cancelled work for https://lh3.googleusercontent.com/--L0Km39l5J8/URquXHGcdNI/AAAAAAAAAbs/3ZrSJNrSomQ/s160-c/Antelope%252520Butte.jpg
为什么在第二种情况下调用cancelPotentialWork时,doInBackground永远不会启动?根据代码序列,这是应该执行的下一部分!至少有任何人想知道我应该在哪里搜索错误吗?
答案 0 :(得分:2)