【问题标题】:Android AsyncTask called "multiple" timesAndroid AsyncTask 被称为“多次”
【发布时间】:2015-04-01 15:28:57
【问题描述】:

我对 android 编程相当陌生。我有一个主要活动,通过服务处理程序(url)从数据库获取数据。我也想插入数据,但是在不同的活动上,我希望我的主要活动在每次被调用时都是最新的(onresume(),onrestart())。 我在关于 AsyncTask 的 Android API 参考中找到了这个: 该任务只能执行一次(如果尝试第二次执行将引发异常。) 这是否意味着我不能在活动恢复时调用 AsyncTask,或者我不能同时运行 AsyncTask 的多个“实例”?

【问题讨论】:

  • 您可以创建同一个异步任务的多个实例并同时执行它们

标签: android android-asynctask


【解决方案1】:

字面意思是,当AsyncTask 正在运行时,您无法再次启动它。 在您的MainActivity.class 中有一行:

task.execute(); 

如果任务已完成或未完成,并且您再次调用该方法,则将抛出exception

并将这个方法放在onResume() 中是一个很好的做法。 唯一需要注意的是:如果你输入了onRestart(),记住,这个回调在你改变配置时有效,但是如果你创建activity,它就不会被调用。

关于lifecycle of an Activity的文档。

【讨论】:

    【解决方案2】:

    这是否意味着我不能在活动恢复时调用 AsyncTask,或者我不能同时运行 AsyncTask 的多个“实例”?

    这意味着你不能在同一个AsyncTask实例上调用两次execute方法,无论它是否完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多