异步任务可以定期向 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)
. 另一个选项 - 如果您可以访问屏幕上添加的任何视图,那么您还可以通过View.post(Runnable action)
. 这些可以安全地从doInBackground()
.