我有一个 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 非空(我明白了)但是在调用 onActivityCreated 之后 onActivityCreated 为空!!为什么?我想让我的对象在 ListFragment 上而不是在我的 Activity 上..
最佳答案
如果您总是在 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/