[英]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.