异步任务是否可以将定期结果发送到GUI?
例如:我有3件事我想做异步任务。在每件事之后,我想
将字符串发送回gui:"task x completed"
我可以在不创建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()。
这是我很快发现的一个例子,可能会也可能不会奏效。但我认为你有足够的信息可以自己解决。
答案 2 :(得分:0)
除了其他建议:如果您可以访问asycntask中的活动,那么您也可以使用Activity.runOnUiThread(Runnable action)
。还有一个选择 - 如果您可以访问屏幕上添加的任何视图,那么您还可以通过View.post(Runnable action)
将其用于安全的UI更新。可以安全地从doInBackground()
拨打电话。