异步任务发送结果给gui

时间:2012-08-30 18:06:04

标签: android android-asynctask

异步任务是否可以将定期结果发送到GUI?

例如:我有3件事我想做异步任务。在每件事之后,我想 将字符串发送回gui:"task x completed"

我可以在不创建3个异步任务的情况下执行此操作吗?

3 个答案:

答案 0 :(得分:1)

使用onProgressUpdate()在用户界面中生成显示。

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()的方法。

答案 1 :(得分:1)

是。查看方法onProgressUpdate()和publishProgress()。

这是我很快发现的一个例子,可能会也可能不会奏效。但我认为你有足够的信息可以自己解决。

Updating progress dialog in Activity from AsyncTask

答案 2 :(得分:0)

除了其他建议:如果您可以访问asycntask中的活动,那么您也可以使用Activity.runOnUiThread(Runnable action)。还有一个选择 - 如果您可以访问屏幕上添加的任何视图,那么您还可以通过View.post(Runnable action)将其用于安全的UI更新。可以安全地从doInBackground()拨打电话。