【发布时间】:2023-03-27 14:39:02
【问题描述】:
我有一个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]
任何人都可以建议一些方法来控制任务数量以避免此类异常。 谢谢。
【问题讨论】:
-
我建议您使用任何图像加载库,例如 Square 的 Picasso 或 Universal Image Loader 来加载图像。这些库允许您使用许多配置。
标签: android exception gridview android-asynctask