我有一个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而不是我的活动..
答案 0 :(得分:8)
如果您始终在 Activity#onCreate()
回调中创建新片段,就会发生这种情况。
如果确实如此,请检查this answer。您的 Fragment#onActivityCreated
将被调用两次:
FragmentActivity#onStart
调用 mFragments.dispatchActivityCreated()
触发。它将传递已保存的实例。FragmentActivity#onStart
对 mFragments.execPendingActions()
的调用触发。这次没有保存实例(因为它是为了响应新的Fragment添加而被调用的)。