我正在使用AsyncTask将数据上传到UI。我编写了从服务器下载数据的代码,并在单独的方法中调用该方法来执行doInBackground。但是,由于在doInBackground中无法访问UI方法,因此将会出现错误。请问有没有其他替代方法可以在doInBackground中访问UI方法?
我正在使用AsyncTask将数据上传到UI。我编写了从服务器下载数据的代码,并在单独的方法中调用该方法来执行doInBackground。但是,由于在doInBackground中无法访问UI方法,因此将会出现错误。请问有没有其他替代方法可以在doInBackground中访问UI方法?
有没有其他方法可以从doinBackground访问UI方法?
在doInBackground()
中调用publishProgress()
。将更新UI的逻辑放在您的AsyncTask
的onProgressUpdate()
中。在调用publishProgress()
之后,onProgressUpdate()
将在主应用程序线程(即UI线程)上调用。 这里是一个演示该过程的样例项目。
调用 runOnUiThread(Runnable action)
只将 doInBackground()
用于以下任务:
然后,您可以实现 AsyncTask.onPostExecute()
来在主UI线程上运行代码以处理来自AsyncTask的结果
从 AsyncTask.onPostExecute()
的JavaDoc中获得:
"在 doInBackground 后在UI线程上运行... "