从导航的角度来看,我的程序结构如下:
片段A - >片段B - >片段C(按下后退按钮) - >片段A
我有一个异步任务,通常在片段A中的onActivityCreated中触发:
fetch = new FetchVenues(this, user);
fetch.execute();
导航到其他片段后,按下步骤按下后退按钮:
getSupportFragmentManager().popBackStack(FIRST_FRAGMENT, 0);
getSupportFragmentManager().beginTransaction().commit();
这会将程序返回到片段A.但是在返回到此片段时,会调用onActivityCreated,但我的异步任务不会再次触发。
我不确定为什么会这样。我想再次触发异步任务。
答案 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}}