0

使用 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 个复选框,作为应用启动复选框 1 被选中且未选中复选框 2 时的默认值。但是,当 checkbox2 被选中而 checbox1 自动未被选中时,按下另一个按钮后,它将启动 Third_Activity.class。

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

这部分我们应该写什么

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

1 回答 1

1

使用SharedPreferences来存储您的第一个活动。像以前一样启动您的启动器活动。但是在那里检查您保存在 sharedpreference 中的值。因此,如果您发现必须从启动器的 oncreate 开始第三个活动,则开始第三个活动并完成第一个活动。例如

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 布尔值来检查第三个活动是否会直接启动。默认情况下这是错误的。

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

getSharedPreferences(name).edit().putBoolean("should_start_third", true).commit();
于 2013-05-04T16:07:17.547 回答