簡體   English   中英

在Activity上調用onPause時,數據會發生什么

[英]What happens to data when onPause is called on Activity

我在應用上運行了一項活動,當用戶點擊搜索圖標時,另一項活動(Google地圖)會打開。 所以我假設第一個活動onPause被調用,當Maps活動完成時,第一個Activity onResume被調用。

所以我的問題是,在調用Maps活動之前,用戶輸入並分配給第一個活動中的變量的所有數據會發生什么變化?

當您啟動其他活動時,Android會為視圖存儲用戶數據。

將執行onSaveInstanceState方法並存儲數據。

被調用以在被殺死之前從活動中檢索每個實例狀態,以便可以在onCreate(Bundle)或onRestoreInstanceState(Bundle)中恢復狀態(由此方法填充的Bundle將被傳遞給兩者)。

你可以在這里查看更多信息。

如果要保留變量,可以覆蓋onSaveInstanceState

static final String STATE_SCORE = "playerScore";
...

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    // Save the user's current game state
    savedInstanceState.putInt(STATE_SCORE, mCurrentScore);

    super.onSaveInstanceState(savedInstanceState);
}

並讓他們回來,

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) {
        // Restore value of members from saved state
        mCurrentScore = savedInstanceState.getInt(STATE_SCORE);     
    }
    ...
}

不,不是全部。 用戶輸入的數據仍然存在,但您必須保存變量

@Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); }

並讓他們回來

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
}

這取決於你的靠背沒有清理的情況。 請閱讀,並有一些解釋

暫無
暫無

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

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