2013-03-06 54 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()。這一次沒有保存的實例(因爲它正在響應新的片段添加被調用)。