我在应用上运行了一项活动,当用户点击搜索图标时,另一项活动(Google地图)会打开。 所以我假设第一个活动onPause被调用,当Maps活动完成时,第一个Activity onResume被调用。
所以我的问题是,在调用Maps活动之前,用户输入并分配给第一个活动中的变量的所有数据会发生什么变化?是否会丢失?
答案 0 :(得分:2)
Android会在您开始其他活动时存储视图的用户数据。
onSaveInstanceState
方法将被执行并存储数据。
被调用以在被杀死之前从活动中检索每个实例状态,以便可以在onCreate(Bundle)或onRestoreInstanceState(Bundle)中恢复状态(由此方法填充的Bundle将被传递给两者)。
您可以查看更多信息here。
如果要保留变量,可以覆盖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);
}
...
}
答案 1 :(得分:1)
不,不是全部。用户输入的数据仍然存在,但您必须在
中保存变量 @Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
并将其取回
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
答案 2 :(得分:0)
这取决于你的靠背没有清理的情况。请阅读并且有一些explanation。