编辑:
好的,所以我更新了这个用户“android开发者”建议的用户,每次进入应用程序时交换机仍然未选中。
以下是代码片段。顺便说一下这是我的第一个应用程序,所以请轻松一下。我正在学习。
public class MainActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PreferenceManager.getDefaultSharedPreferences(this).getBoolean("sw1",false);
}
public void onClick(View v) {}
public void sw1(View view) {
// Is the view now checked?
boolean checked = ((Switch) view).isChecked();
// Check which checkbox was clicked
switch(view.getId()) {
case R.id.sw1:
if (checked) try {
//Toast.makeText(this, "SW1 Checked", Toast.LENGTH_SHORT).show();
Runtime.getRuntime().exec(new String[] { "su","-c","mod1" });
PreferenceManager .getDefaultSharedPreferences(this).edit().putBoolean("sw1",true).commit();
} catch (IOException e) {
e.printStackTrace();
}
else try {
//Toast.makeText(this, "SW1 NOT Checked", Toast.LENGTH_SHORT).show();
Runtime.getRuntime().exec(new String[] { "su","-c","mod1b" });
PreferenceManager .getDefaultSharedPreferences(this).edit().putBoolean("sw1",false).commit();
} catch (IOException e) {
e.printStackTrace();
break;}
}
}
答案 0 :(得分:0)
定义您应用的“退出”。
如果你通过完成它来破坏活动,它不应该恢复状态,你应该将它存储在实际存储中(sharePreferences,DB,内部/外部存储,......)。
但是,如果您希望在配置更改后恢复它(例如在旋转设备后),如果您使用Android的普通视图,则应该自动恢复,如果您希望恢复全新的自定义视图,在onCreate()方法而不是在onRestoreInstanceState()方法上恢复它们。
另一个选择是不完成活动,并通过使用片段而不是多个活动来显示所有内容,就像它关闭一样。