簡體   English   中英

在活動中一起使用onBackPressed()和onSaveInstanceState()

[英]Using onBackPressed() and onSaveInstanceState() together in an Activity

我像這樣覆蓋onBackPressed

@Override
public void onBackPressed() {
    Intent setIntent = new Intent(this, MainActivity.class);
    setIntent.addCategory(Intent.CATEGORY_HOME);
    setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(setIntent);
}

我還保存了我的活動片段之一:

@Override
public void onSaveInstanceState(Bundle outState) {
    getSupportFragmentManager().putFragment(outState, "mContent", mContent);
    super.onSaveInstanceState(outState);
}

但是,這些方法似乎無法一起使用(狀態永遠不會保存,盡管在我覆蓋onBackPressed()之前它能很好地工作)。

除了使用SharedPreferences之外,還有什么方法可以修復它? 如果可能的話,我想堅持使用onSaveInstanceState()onRestoreInstanceState()

看來你必須打電話

super.onBackPressed();

在onBackPressed()的末尾。 這樣,當您先按后退按鈕時,將調用onBackPressed,然后按此順序依次調用onPause(),onStop(),onSaveInstanceState(),最后是onDestroy()。

只是有關onBackPressed的問題。 為什么要更改后退按鈕的行為? Android知道如何返回上一個活動!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM