2013-03-06 64 views
4

我有一个listFragment这是我onActivityCreated: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,而不是我的活动对象高等学府..

+1

*为什么* - ?你确定你不是在你的'Activity'地方加入'Fragment'的又一新的实例? – Luksprog 2013-03-08 08:23:34

回答

8

这可以,如果你总是在你Activity#onCreate()回调创建一个新的片段发生。
如果对,请检查this answer。你Fragment#onActivityCreated会被调用两次:

  • 首次由FragmentActivity#onStart的呼叫触发mFragments.dispatchActivityCreated()。它会传递保存的实例。
  • 第二次触发FragmentActivity#onStart打电话给mFragments.execPendingActions()。这一次没有保存的实例(因为它正在响应新的片段添加被调用)。