按下后退按钮后片段AsyncTask不执行

时间:2015-06-09 09:01:31

标签: android android-fragments android-asynctask

从导航的角度来看,我的程序结构如下:

片段A - >片段B - >片段C(按下后退按钮) - >片段A

我有一个异步任务,通常在片段A中的onActivityCreated中触发:

fetch = new FetchVenues(this, user);
fetch.execute();

导航到其他片段后,按下步骤按下后退按钮:

getSupportFragmentManager().popBackStack(FIRST_FRAGMENT, 0);
getSupportFragmentManager().beginTransaction().commit();

这会将程序返回到片段A.但是在返回到此片段时,会调用onActivityCreated,但我的异步任务不会再次触发。

我不确定为什么会这样。我想再次触发异步任务。

2 个答案:

答案 0 :(得分:1)

我担心的有两件事。我不确定是否再次调用onActivityCreated()。因为据我所知,所有3个片段都在同一个活动中。因此,在更改片段时不会破坏活动,因此在切换回片段A时不会再次创建活动。

其次,一个AsyncTask只能执行一次。这不是这种情况。但我认为,如果 fetch = new FetchVenues(this,user); 写在其他地方并且只有 fetch.execute(); 写在onActivityCreated()中,那么它也可能是个问题。

答案 1 :(得分:0)

asyn task onCreateView() fragment而不是onCreate activity的{​​{1}},因为onCreate()第一次只被调用一次。< / p>

here

中查看life circle的{​​{1}}