我试图通过 android 提供的有关 AsyncTask 的文档,即使它有点难以理解,但我遇到的是 AsyncTask 正常工作的线程规则。
我在这里粘贴链接;https://developer.android.com/reference/android/os/AsyncTask.html#threading-rules
这是规则;
要使此类正常工作,必须遵循一些线程规则:
AsyncTask 类必须在 UI 线程上加载。这从 Build.VERSION_CODES.JELLY_BEAN 开始自动完成。
任务实例必须在 UI 线程上创建。
必须在 UI 线程上调用 execute(Params...)。
不要手动调用 onPreExecute()、onPostExecute(Result)、doInBackground(Params...)、onProgressUpdate(Progress...)。
该任务只能执行一次(如果尝试第二次执行 i 将引发异常。)
我也理解规则 2、3 和 4。
我不明白的是规则1和5。
扩展 AsyncTask 的类是在 UI 线程上创建的实例(例如 onCreate()) - 规则 2
他们想在规则 1 中说什么?
它是如何在我们从未提及的情况下自动加载的?
根据规则 5,他们是否说,扩展 AsyncTask 的类的单个实例可以执行一次,如果我们想再执行一次,我们是否必须创建同一个类的另一个实例?
谢谢