3

ドキュメントによると、execute() は UI スレッドから呼び出す必要があります。ただし、数秒ごとに画像を更新しているため、Runnable を使用しています。その中で、実行する必要がある操作を定義します。Starting(execute())ASyncTask はその 1 つです。しかし、ASyncTask は UI スレッド以外から呼び出されることは想定されていないため、どうすればよいのでしょうか?

4

3 に答える 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 に答える