ListFragment和onActivityCreated调用了两次

时间:2013-03-06 10:39:40

标签: android android-fragments

我有一个listFragment这是我的onActivityCreated:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    if (savedInstanceState != null) {
        utenti=savedInstanceState.getParcelableArrayList("array");
    }else{
        threadutenti= (GetUtenti) new GetUtenti(this.getActivity(), utenti).execute();
    }

当我旋转我的设备时,我首先将savedInstanceState设为非null(我得到了它)但是在使用onActivityCreated null调用onActivityCreated之后!为什么?我想在ListFragment上获取我的对象utenti而不是我的活动..

1 个答案:

答案 0 :(得分:8)

如果您始终在 Activity#onCreate() 回调中创建新片段,就会发生这种情况。
如果确实如此,请检查this answer。您的 Fragment#onActivityCreated 将被调用两次:

  • 首次由 FragmentActivity#onStart 调用 mFragments.dispatchActivityCreated() 触发。它将传递已保存的实例。
  • 第二次由 FragmentActivity#onStart mFragments.execPendingActions() 的调用触发。这次没有保存实例(因为它是为了响应新的Fragment添加而被调用的)。