非同期タスクは定期的に結果をGUIに送信できますか?
例:非同期タスクで実行したいことが3つあります。それぞれの後で、GUIに文字列を送り返したいと思います。"task x completed"
3つの非同期タスクを作成せずにこれを行うことはできますか?
非同期タスクは定期的に結果をGUIに送信できますか?
例:非同期タスクで実行したいことが3つあります。それぞれの後で、GUIに文字列を送り返したいと思います。"task x completed"
3つの非同期タスクを作成せずにこれを行うことはできますか?
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()
。
はい。onProgressUpdate()メソッドとpublishProgress()メソッドを確認してください。
これは私がすぐに見つけた例ですが、うまくいくかもしれませんし、うまくいかないかもしれません。しかし、あなたはそれを自分で理解するのに十分な情報を持っていると思います。
他の提案に加えて:asycntaskからアクティビティにアクセスできる場合は、を使用することもできますActivity.runOnUiThread(Runnable action)
。さらに別のオプション-画面に追加されたビューにアクセスできる場合は、を介して安全なUI更新に使用することもできますView.post(Runnable action)
。これらはから安全に呼び出すことができdoInBackground()
ます。