Android AsyncTask称为“多次”

时间:2015-04-01 15:28:57

标签: android android-asynctask

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

2 个答案:

答案 0 :(得分:0)

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

task.execute(); 

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

将此方法放在onResume()中是一种很好的做法。 只有一件事需要注意:如果你输入onRestart(),请记住,当你改变配置时,这个回调会起作用,但如果你创建activity则不会调用它。

关于lifecycle of an Activity的文档。

答案 1 :(得分:0)

  

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

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