有没有办法在 AsyncTask 的 doinbackground() 中执行 UI 任务。我很清楚最好在 onPostExecute 方法中执行此操作。但就我而言,因为我需要使用可重用的警报,所以能够在我的 doinbackground 中访问 UI 将为我节省大量时间。也就是说,我需要在 46 个地方调整代码,但能够在 doinbackground 中做到这一点只需要在一个地方进行更改。
提前致谢
有没有办法在 AsyncTask 的 doinbackground() 中执行 UI 任务。我很清楚最好在 onPostExecute 方法中执行此操作。但就我而言,因为我需要使用可重用的警报,所以能够在我的 doinbackground 中访问 UI 将为我节省大量时间。也就是说,我需要在 46 个地方调整代码,但能够在 doinbackground 中做到这一点只需要在一个地方进行更改。
提前致谢
希望这能解决你的问题
onPreExecute() {
// some code #1
}
doInBackground() {
runOnUiThread(new Runnable() {
public void run() {
// some code #3 (Write your code here to run in UI thread)
}
});
}
onPostExecute() {
// some code #3
}
除了从 更新 UI 之外onPostExecute()
,还有 2 种更新 UI 的方法:
doInBackground()
实施runOnUiThread()
onProgressUpdate()
供参考,
onProgressUpdate()
- 每当您想更新任何内容时doInBackground()
,您只需要使用publishProgress(Progress...)
发布一个或多个进度单位,它就会onProgressUpdate()
在 UI 线程上 ping 更新。
onProgressUpdate
你可以利用