2016-03-25 29 views
1

我有一個activity首頁其中有一個fragment。我試圖在用戶回到家時恢復activity的狀態。如何在按下後退箭頭時恢復以前的活動狀態

這家Activity的哪個片段的實例存儲Bundle

@Override 
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { 
    super.onSaveInstanceState(outState, outPersistentState); 
    getSupportFragmentManager().putFragment(outState,"fragment",feedFragment); 
} 

的方法,我有這個檢查onCreateHomeActivity

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 
    context = this; 
    initUi(); 
    initToolbar(); 
    initFragment(savedInstanceState); 
} 

private void initFragment(Bundle savedInstanceState) { 

    if(savedInstanceState!=null){ 
     feedFragment = getSupportFragmentManager().getFragment(savedInstanceState,"fragment"); 

    }else{ 
     FragmentManager fm = getSupportFragmentManager(); 
     fm.beginTransaction().replace(R.id.content_container, feedFragment).commit(); 
    } 
} 

所以問題是,當我改變屏幕的方向當我在HomeActivity。它恢復它的狀態。但是,當我在其他活動中時,我從另一項活動的操作欄中的後退箭頭返回到家中活動。那麼它不會恢復它的狀態,它開始再次從服務器加載數據。 我在做什麼錯?我怎麼能恢復prevoius狀態,當我從導航欄中的後退箭頭導航回HomeActivity

+0

當我按設備的後退按鈕,然後一切順利,但是當我按在行動吧回到箭頭上一個屏幕開始重新加載數據 –

+0

使用''public void onSaveInstanceState(Bundle outState){'not'public void onSaveInstanceState(Bundle outState,PersistableBundle outPersistentState){',您是否在操作欄的箭頭按鈕上實現了'UP'導航? – EpicPandaForce

+0

什麼是向上導航? –

回答

1

您可以使用onSaveInstanceStateonRestoreInstanceState方法。 閱讀此answer,以便您可以找到解決您的問題。

0

請您HomeActivity的活性元素中的清單文件把機器人:launchMode =「singleTop」

相關問題