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

时间:2015-01-31 01:05:11

标签: android android-asynctask

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

我知道检查AsyncTask.getStatus()可以防止这种情况,但如果我不想检查,会发生什么?

1 个答案:

答案 0 :(得分:2)

由于AsyncTask doc:

此类必须遵循一些线程规则才能正常工作:

必须在UI线程上加载AsyncTask类。这是从JELLY_BEAN开始自动完成的。

  1. 必须在UI线程上创建任务实例。 必须在UI线程上调用execute(Params ...)。
  2. 不要手动调用onPreExecute(),onPostExecute(Result),oInBackground(Params ...),onProgressUpdate(Progress ...)。
  3. 任务只能执行一次(如果尝试第二次执行,则会抛出异常。)
  4. 希望这有帮助!