5

我有一个 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();
    }

当我旋转我的设备时,我首先 saveInstanceState 非 null (我明白了)但是在 onActivityCreated 被调用后 onActivityCreated null !为什么?我想在 ListFragment 上而不是在我的活动上获得我的对象 utenti..

4

1 回答 1

10

如果您总是在Activity#onCreate()回调中创建新片段,则可能会发生这种情况。
如果是真的,请检查这个答案。您Fragment#onActivityCreated将被调用两次:

  • 第一次由FragmentActivity#onStart's call to触发mFragments.dispatchActivityCreated()。它将传递保存的实例。
  • FragmentActivity#onStart第二次由's call to触发mFragments.execPendingActions()。这次没有保存的实例(因为它被调用以响应新的 Fragment 添加)。
于 2014-09-24T16:42:16.260 回答