在我的应用中,我必须从服务器下载数据。我将HTTP请求放在Async-Thread中。如何在主UI中使用数据(==字符串)?
平台是Android,编程语言是Java 1.6。
答案 0 :(得分:0)
假设您实际使用的是AsyncTask
,而不是异步线程(无论是什么)。
从AsyncTask
onPostExecute
开始,部分是“4个步骤”:
- onPreExecute(),在执行任务之前在UI线程上调用。此步骤通常用于设置任务,例如通过在用户界面中显示进度条。
- doInBackground(Params ...),在onPreExecute()完成执行后立即在后台线程上调用。此步骤用于执行可能需要很长时间的后台计算。异步任务的参数将传递给此步骤。计算结果必须由此步骤返回,并将传递回最后一步。此步骤还可以使用publishProgress(Progress ...)发布一个或多个进度单元。这些值发布在UI线程的onProgressUpdate(Progress ...)步骤中。
- onProgressUpdate(Progress ...),在调用publishProgress(Progress ...)后在UI线程上调用。执行的时间是不确定的。此方法用于在后台计算仍在执行时显示用户界面中的任何形式的进度。例如,它可用于为进度条设置动画或在文本字段中显示日志。
- onPostExecute(Result),在后台计算完成后在UI线程上调用。背景计算的结果作为参数传递给此步骤。
醇>
您似乎在寻找第四种方法。如上所述:将在您的UI线程中调用{{1}},并将Result作为参数(类型设置为任务的泛型参数)