此应用有2个活动:MainActivity和SettingActivity(使用意图发送值)。 ...... MainActivity:
String set="1";
public void onCreate(Bundle instant) {
super.onCreate(instant);
setContentView(R.layout.camera);
...当我的应用程序运行时,我通过SettingActivity更改set:set="2"
的值,并且它在MainActivity中正常工作。
然后,我按下主页按钮,再次启动此应用程序,它与布局camera.xml中的set="1"
一起使用;
当我按下后退按钮时:在屏幕稍微更改后,它与set="2"
一起使用布局camera.xml。
为什么在按Home键后再次运行时有2个布局。为什么我必须按“返回”按钮才能获得当时set
的确切值。
我试图覆盖onSaveInstanceState(Bundle instant)。但它仍然是一样的。
答案 0 :(得分:0)
您是否先尝试查看此答案? Saving Android Activity state using Save Instance State
当您按下主页按钮并返回应用程序时,它可以重新启动,因此set
变量将恢复为原始值。
要保存变量状态,您必须编写
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// Save UI state changes to the savedInstanceState.
// This bundle will be passed to onCreate if the process is
// killed and restarted.
savedInstanceState.putString("set", set);
}
然后你可以恢复这样的值:
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Restore UI state from the savedInstanceState.
// This bundle has also been passed to onCreate.
String myString = savedInstanceState.getString("set");
}
此外,为什么使用String
来包含整数值?
希望这个帮助
答案 1 :(得分:0)
String set="1"; // intial global value for everyone
"当我的应用程序运行时,我更改了set:set =" 2"的值通过SettingActivity"
到那个时候MainActivity
暂停了,你回来了,现在它恢复了,你按下homebutton,然后它暂停并停止,你再一次调用它,猜测是os创建了它的另一个活动,并开始整个过程中,你按下后退按钮就可以杀死新创建的类,然后弹出旧的弹出,得到它?
你总是可以玩singletask
或singleTop
,但为什么它给出了两个布局,这取决于你如何调用你的课程或你的活动...可能会有不同的意图..