我想启动几个线程,从网络中检索数据,使用它执行一些操作,然后更改有关此数据的 UI。
我正在使用执行器服务
executorService = Executors.newFixedThreadPool(3);
所有数据都得到了,但是当我尝试调用 imageView.post 它返回 true 但有关 Runnable 的主体未执行:
Log.v("imageloader", "before post + " + imageView);
imageView.post(new Runnable()
{
@Override
public void run()
{
Log.v("imageloader", "in post - " + bmpToShow.toString() + "/" + imageView);
if (imageView.getTag().equals(url))
{
imageView.setImageBitmap(bmpToShow);
}
}
});
如果在日志中的这个执行器服务中执行 10 个 Runnables,您可以找到 10 条“发布前”消息,但只有 nTasks(取决于您在“Executors.newFixedThreadPool(nTasks)”中允许多少任务)“发布后”消息
我无法弄清楚 nTasks 如何与 view.post 运行次数相关联。
PS。它仅在应用程序的第一次启动时发生(我使用 android 片段并在 onCreateView 中填充数据)