いくつかのスレッドを開始し、ネットからデータを取得し、それを使用していくつかのアクションを実行してから、このデータに関する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にデータを入力します)