保存设置onDestroy

时间:2013-05-04 15:59:06

标签: android save android-lifecycle setting ondestroy

如何在使用onDestroy退出应用程序后保存设置?

示例:

当应用程序启动时,它将启动Main_Activity.class

Button button1;

public class Main_Activity extends Activity {
     super.onCreate(savedInstanceState);
     ................
}

添加了一个名为“button1”的按钮,并提供了一个操作,可在单击时打开新活动

public void button1_newactivity (View v){
     button1 = (Button) findViewById(R.id.button1);
     button1.setOnClickListener (new View.OnClickListener() {

          public void onClick(View arg0) {
               Intent secondactivity=new Intent (getApplicationContext(), Second_Activity.class);
               startActivity(secondactivity);
          }
     });
}

在Second_Activity.class上添加了2个Checkbox,默认情况下,当选择app start checkbox1并且未选中checkbox2时。但是,当选中checkbox2并且没有选择checbox1时,按下另一个按钮后它将启动Third_Activity.class。

我的问题是我们如何保存此设置,所以当我们退出应用程序,然后再次启动应用程序时,它会自动启动Third_Activity.class而不是像第一个那样的Main_Activity.class?

我们应该在这部分写什么

protected void onDestroy(){
     ....................
}

1 个答案:

答案 0 :(得分:1)

使用SharedPreferences来存储哪个将是您的第一个活动。像以前一样启动你的启动器活动。但在那里检查您在共享偏好中保存的值。因此,如果您发现必须从启动器的oncreate开始第3个活动,请从第3个开始,然后完成第一个活动。例如

public class Main_Activity extends Activity {
     super.onCreate(savedInstanceState);
     SharedPreferences pref = getSharedPreferences(name);
     boolean b = pref.getBoolean("should_start_third", false);
     if(b){
        finish();
        start third activity
     }
     ................
}

在SharedPreferences中,我使用了should_start_third布尔值来检查第三个活动是否将直接启动。默认为false。

在选择第三个复选框后,您必须保存共享首选项的值。保存使用如下。

getSharedPreferences(name).edit().putBoolean("should_start_third", true).commit();