我有gridView
,其中包含大约300个元素。每个元素都有imageView
。调用getView()
时,启动异步图像加载器,首先在LruCache
中查找图像,然后在外部存储中查找,然后在网络中查找。异步任务从executeOnExecutor
开始,参数为AsyncTask.THREAD_POOL_EXECUTOR
。
问题是如果我滚动网格视图太快,会创建很多线程并且应用程序崩溃
E/AndroidRuntime(14980): java.util.concurrent.RejectedExecutionException: Task android.os.AsyncTask$3@42426f98 rejected from java.util.concurrent.ThreadPoolExecutor@41c6c800[Running, pool size = 128, active threads = 128, queued tasks = 10, completed tasks = 3]
任何人都可以建议一些方法来控制任务量以避免此类异常。 谢谢。
答案 0 :(得分:1)
您可以使用两种方法来引用android documentation来缓存位图
您也可以使用第三方库来缓存图像,但这种方法存在一个问题。 如果图像缓存在磁盘上,很少有图书馆默认不支持缓存清除选项。