Android:如果在任务 运行 时调用 AsyncTask execute() 会发生什么情况?

Android: What happens if AsyncTask execute() is called while the task is running?

假设有一个从 UI 按钮触发的 AsyncTask,单击按钮会触发 execute() 以启动任务。如果任务正在执行,用户再次调用 execute() 会发生什么?

我知道这可以通过检查 AsyncTask.getStatus() 来避免,但如果我不想检查它会怎样?

由于 AsyncTask 文档:

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

必须在 UI 线程上加载 AsyncTask class。这是从 JELLY_BEAN.

开始自动完成的
  1. 任务实例必须在 UI 线程上创建。 execute(Params...) 必须在 UI 线程上调用。
  2. 不要手动调用 onPreExecute()、onPostExecute(Result)、oInBackground(Params...)、onProgressUpdate(Progress...)。
  3. 任务只能执行一次(如果尝试第二次执行,将抛出异常。)

希望对您有所帮助!