1

非同期タスクは定期的に結果をGUIに送信できますか?

例:非同期タスクで実行したいことが3つあります。それぞれの後で、GUIに文字列を送り返したいと思います。"task x completed"

3つの非同期タスクを作成せずにこれを行うことはできますか?

4

3 に答える 3

1

onProgressUpdate()UIで表示を生成するために使用します。

boolean first = false, second = false, third = false; // task not completed yet


doInBackground()
{
// complete your task and set the corresponding boolean to **true**
}

onProgressUpdate(..)
{
if(first== true) Toast.makeText(context, "Task 1 finished", Toast.LENGTH_LONG).show();
//similarly check which task has been done
}

編集:また、と呼ばれる別のメソッドをチェックアウトすることができますpublishProgress()

于 2012-08-30T18:08:24.363 に答える
1

はい。onProgressUpdate()メソッドとpublishProgress()メソッドを確認してください。

これは私がすぐに見つけた例ですが、うまくいくかもしれませんし、うまくいかないかもしれません。しかし、あなたはそれを自分で理解するのに十分な情報を持っていると思います。

AsyncTaskからのアクティビティの進行状況ダイアログを更新しています

于 2012-08-30T18:08:42.160 に答える
0

他の提案に加えて:asycntaskからアクティビティにアクセスできる場合は、を使用することもできますActivity.runOnUiThread(Runnable action)。さらに別のオプション-画面に追加されたビューにアクセスできる場合は、を介して安全なUI更新に使用することもできますView.post(Runnable action)。これらはから安全に呼び出すことができdoInBackground()ます。

于 2012-08-30T18:27:15.683 に答える