0

我试图通过 android 提供的有关 AsyncTask 的文档,即使它有点难以理解,但我遇到的是 AsyncTask 正常工作的线程规则。

我在这里粘贴链接;https://developer.android.com/reference/android/os/AsyncTask.html#threading-rules

这是规则;

要使此类正常工作,必须遵循一些线程规则:

  1. AsyncTask 类必须在 UI 线程上加载。这从 Build.VERSION_CODES.JELLY_BEAN 开始自动完成。

  2. 任务实例必须在 UI 线程上创建。

  3. 必须在 UI 线程上调用 execute(Params...)。

  4. 不要手动调用 onPreExecute()、onPostExecute(Result)、doInBackground(Params...)、onProgressUpdate(Progress...)。

  5. 该任务只能执行一次(如果尝试第二次执行 i 将引发异常。)

我也理解规则 2、3 和 4。

我不明白的是规则1和5。

扩展 AsyncTask 的类是在 UI 线程上创建的实例(例如 onCreate()) - 规则 2

他们想在规则 1 中说什么?
它是如何在我们从未提及的情况下自动加载的?

根据规则 5,他们是否说,扩展 AsyncTask 的类的单个实例可以执行一次,如果我们想再执行一次,我们是否必须创建同一个类的另一个实例?

谢谢

4

1 回答 1

0

整个类已被弃用,无论如何你不应该再使用它了。

规则 5 意味着 AsyncTask 的单个实例只能运行一次。您需要创建另一个实例才能再次运行它。

规则 1 是关于加载类的 Java 类对象。这会在需要时自动发生,并且每次执行应用程序都会发生一次。除非您正在做一些奇怪的事情,否则您实际上并不需要担心这一点。

于 2021-09-03T03:31:42.927 回答