loadMoreという名前のAsyncTaskを、LOADMOREという名前のボタンを介してループトリガーで何度も実行したいと思います。
エラー:
03-07 20:31:38.330:E / AndroidRuntime(504):java.lang.IllegalStateException:タスクを実行できません:タスクはすでに実行されています(タスクは1回だけ実行できます)
試してみました
- ボタンLOADMOREは、loadMoreの場合
onPostExecute()
にのみ表示されます-AsyncTaskが実行されます。内にLOADMOREビューを追加しますonPostExecute()
。 - AsyncTaskの想定される動作は、LOADMOREボタンを介して表示されません。
- AysncTask --loadMoreRUNNINGかどうかを確認しますか?
onClickListener
LOADMOREボタンの内側。 - ただし、情報をログに記録するため
onClickListener
、LOADMOREボタンに到達することはありません。
LOADMOREボタンのonClickListenerコード::
ld. . . . . .loadMore AsyncTask.
ll. . . . . . LinearLayout (where I'm removing and Adding LOADMORE button).
loadMore. . . LOADMORE Button.
public void onClick(View v) {
// TODO Auto-generated method stub
ll.removeView(loadMore);
//loadMore.setVisibility(View.INVISIBLE);
spin2.setVisibility(View.VISIBLE);
if(ld.getStatus()==Status.PENDING)
{
ld.execute();
Log.i("PENDING", "Not yet RUNNING");
}
else if(true)
{
while(ld.getStatus()==Status.RUNNING)
{
Log.i("loadMore Async", "LoadMore RUNNING");
if(ld.getStatus()==Status.FINISHED)
return;
}
ld.execute();
}
}
loadMore AsyncTaskのonPostExecute()::
protected void onPostExecute(Void result) {
adapter = new PhotosAdapter(MainActivity.this, arrPhotos);
gridOfPhotos.setAdapter(adapter);
spin2.setVisibility(View.GONE);
ll.addView(loadMore);
Log.i("loadMore-Async", "Adding LoadMore button again");
Log.i("loadMore-Async", "LoadMore AsyncTask onPost() finished");
loadMore.setOnClickListener(n);
Log.i("loadMore-Async", "Adding Listener to LoadMore");
}