ドキュメントによると、execute() は UI スレッドから呼び出す必要があります。ただし、数秒ごとに画像を更新しているため、Runnable を使用しています。その中で、実行する必要がある操作を定義します。Starting(execute())ASyncTask はその 1 つです。しかし、ASyncTask は UI スレッド以外から呼び出されることは想定されていないため、どうすればよいのでしょうか?
5557 次
3 に答える
5
RunnableにrunOnUiThreadを追加するだけ で、AsyncTaskを開始できます。
private Runnable updateImages= new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
// call your asynctask here
}
}
});
//////YOUR CODE HERE
}
于 2012-06-28T06:01:23.513 に答える
1
プロジェクトを再設計して、AsyncTask
ではなくのみで動作するようにしてくださいRunnable
。この動作がどのようにAsyncTask
気に入るかはわかりませんが、以前に AsyncTasks のいくつかの UI を変更しました。
于 2012-06-28T05:53:46.463 に答える
0
どうぞ。
private Handler mHandler = new Handler(Looper.getMainLooper());
private Runnable updateImages= new Runnable() {
public void run() {
.........
.........
.........
mHandler.post(new Runnable() {
public void run() {
call your asynctask here
}
});
}
};
于 2012-06-28T05:56:26.943 に答える