如何在不刷新的情况下重新加载活动?

时间:2011-10-03 06:59:06

标签: android

我切换到下一个屏幕,然后回到原来,想要拿起我离开的地方,保存和恢复数据。在活动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;
            }
        }
    });

1 个答案:

答案 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

enter image description here


存储按钮状态

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
    }
}