gpt4 book ai didi

java - onRestoreInstanceState() 究竟是如何工作的?

转载 作者:行者123 更新时间:2023-11-29 09:29:24 25 4
gpt4 key购买 nike

我需要你的帮助。我正在制作一个应用程序,我使用方法 onSaveInstanceState()onRestoreInstanceState(),但第二种方法不起作用。

当按下主页按钮时,我可以看到程序如何访问 onSaveinstancestate(),但是当我返回到应用程序时,代码不会调用 onRestoreInstanceState()onCreate( )

因此,应用程序从头开始。我不知道原因...你能帮我吗?

这是我的代码:

public class MainActivity extends ActionBarActivity {

MyView myView;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myView = new MyView(this);
setContentView(myView);

if (savedInstanceState != null) {
myView .SetScore(savedInstanceState.getInt("Id"));
myView .SetNivel(savedInstanceState.getInt("Valor"));
}
}

.....

@Override
protected void onRestart(){
super.onRestart();
myView = new MyView(this);
setContentView(myView );
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null) {
myView.SetScore(savedInstanceState.getInt("Id"));
myView.SetNivel(savedInstanceState.getInt("Valor"));
}
}

@Override
protected void onSaveInstanceState(Bundle savedInstanceState){
savedInstanceState.putInt("Score",myView.GetId());
savedInstanceState.putInt("Nivel",muView.GetValor());
super.onSaveInstanceState(savedInstanceState);
}
}

最佳答案

当系统开始停止您的 Activity 时,它会调用 onSaveInstanceState() 以便您可以指定要保存的其他状态数据,以防必须重新创建 Activity 实例。如果 Activity 被销毁并且必须重新创建相同的实例,系统会将定义的状态数据传递给 onCreate() 方法和 onRestoreInstanceState() 方法。

你可以查看这个https://developer.android.com/training/basics/activity-lifecycle/recreating.html

您可以在您的方法中看到 Toast 会发生什么。

并检查这个https://stackoverflow.com/a/4967491/3653989

关于java - onRestoreInstanceState() 究竟是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28401279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com