AsyncTask
是 Android 中用于在后台线程执行耗时操作的一个类,它可以让你在不影响主线程(UI线程)的情况下处理一些耗时任务。AsyncTask
的执行顺序如下:
-
onPreExecute()
: 这个方法会在后台任务开始之前在主线程上调用。通常用于显示进度条或者启动一个加载提示。 -
doInBackground(Params...)
: 这个方法在后台线程上执行,用于执行耗时操作。你需要重写这个方法并在其中实现你的耗时任务。这个方法的参数由execute()
方法传入。 -
onProgressUpdate(Progress...)
: 当你在doInBackground()
方法中调用publishProgress()
方法时,这个方法会在主线程上被调用。你可以在这个方法中更新 UI,例如显示下载进度。 -
onPostExecute(Result)
: 当doInBackground()
方法执行完成后,这个方法会在主线程上被调用。你可以在这个方法中处理任务结果,例如更新 UI 或者显示结果。
需要注意的是,AsyncTask
默认是串行执行的。如果你想并行执行多个 AsyncTask
,可以使用 executeOnExecutor()
方法,传入 AsyncTask.THREAD_POOL_EXECUTOR
作为参数。但是要注意并发问题,确保你的代码是线程安全的。