我有一个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而不是我的 Activity 上获取我的对象utenti。

最佳答案

如果您始终在Activity#onCreate()回调中创建新 fragment ,则可能会发生这种情况。
如果是真的,请检查this answer。您的Fragment#onActivityCreated将被调用两次:

  • 第一次由FragmentActivity#onStart调用mFragments.dispatchActivityCreated()触发。它将通过保存的实例。
  • 第二次是由FragmentActivity#onStart调用mFragments.execPendingActions()触发的。这次没有保存实例(因为它是为响应新的Fragment添加而被调用)。
  • 关于android - ListFragment和onActivityCreated调用了两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15245036/

    10-13 07:04