我切换到下一个屏幕,然后回到原来,想要拿起我离开的地方,保存和恢复数据。在活动1:我有10个以上的按钮我可以选择和取消选择按钮,如果去下一个屏幕,如果我回来它不应该重新加载,它应该显示我离开的地方,
up1 = (Button) findViewById(R.id.adultup1);
up1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if (upt1 == 0) {
up1.setBackgroundResource(R.drawable.adultup1);
upt1 = 1;
} else {
up1.setBackgroundResource(R.drawable.adultup1_pressed);
upt1 = 0;
}
}
});
答案 0 :(得分:3)
在这里查看图片(并阅读文字):http://developer.android.com/reference/android/app/Activity.html
如果你不需要重新加载状态,你应该考虑你在每个活动状态中做了什么。
如果你这样做:
活动1 - > startActivity(Activity2) - >活动2 - > Activity2.onBackPressed - >活性1
比,没有重装。从第二个到第一个返回时,你被称为onResume
但如果你这样做:
活动1 - > startActivity(Activity2) - >活动2 - > startActivity(Activity1) - >活性1
然后你需要在一些外部类(静态类成员)中保存你的状态,并在onCreate
状态下从中加载Activity1状态。
同样的情况(从图像中可以看出),当app proccess被杀死,用户返回到被中断的活动时。
如果您只是在Activity2上使用finish()
返回活动1,则不会调用onCreate
,只需onResume
存储按钮状态
public static int _state = -1;
onCreate(Bundle savedInstanceState){
if(_state == -1){
_state = 0;
// this is first time we're using "_state" variable, so do init
} else {
// this is second or later, so just load state variable and setup UI
}
}