繁体   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