📜 用于从后台线程更新 UI(用户界面)的 Android 函数的名称是什么? (1)
📅 最后修改于: 2023-12-03 15:27:10.185000 🧑 作者: Mango
用于从后台线程更新 UI 的 Android 函数的名称是什么?
在 Android 应用程序中,由于主线程负责更新 UI,所以后台线程无法直接更新 UI。但有时需要在后台线程中执行耗时操作,并在操作完成后更新 UI。为了实现这一点,Android 提供了一些机制,其中最常用的机制是使用 AsyncTask 类。
AsyncTask 类
AsyncTask 是一种异步任务,用于在后台线程中执行任务并在执行完毕后更新 UI。AsyncTask 提供了 4 个回调方法,它们分别是:
- onPreExecute():在 doInBackground() 方法执行之前调用,一般用于执行一些初始化操作,例如显示进度条等。
- doInBackground():在后台线程中执行任务,在该方法中可以调用 publishProgress() 方法更新任务进度。
- onProgressUpdate():在 doInBackground() 方法中调用 publishProgress() 方法后,在主线程中执行,用于更新任务进度。
- onPostExecute():在 doInBackground() 方法执行完毕后调用,在主线程中执行,用于更新 UI 和执行一些清理操作。
以下是一个使用 AsyncTask 实现后台线程更新 UI 的例子:
使用 AsyncTask 更新 UI
使用 AsyncTask 更新 UI 的步骤如下:
- 创建一个 AsyncTask 的子类。
- 在子类中实现 doInBackground() 方法,该方法用于在后台线程中执行任务。
- 在子类中实现 onPreExecute() 方法,在 doInBackground() 方法执行之前调用,一般用于执行一些初始化操作,例如显示进度条等。
- 在子类中实现 onProgressUpdate() 方法,在 doInBackground() 方法中调用 publishProgress() 方法后,在主线程中执行,用于更新任务进度。
- 在子类中实现 onPostExecute() 方法,在 doInBackground() 方法执行完毕后调用,在主线程中执行,用于更新 UI 和执行一些清理操作。
- 在主线程中创建 AsyncTask 的实例,调用 execute() 方法执行任务。
以下是一个使用 AsyncTask 更新 UI 的例子:
在上面的例子中,我们创建了一个名为 MyTask 的 AsyncTask 子类,并在其中实现了 doInBackground() 和 onPostExecute() 方法。在 onCreate() 方法中,我们创建了 MyTask 的实例并调用了 execute() 方法。当 execute() 方法被调用时,AsyncTask 就会启动一个后台线程并执行 doInBackground() 方法。在 doInBackground() 方法执行完毕后,onPostExecute() 方法就会在主线程中执行,我们可以在该方法中更新 UI。