Sam*_*Sam 0 service android state switch-statement
我在我的Android应用程序中使用switch(如android togglebutton)而不是普通按钮.启用和禁用交换机时,代码工作正常.但我想存储开关的状态.假设我启用了交换机并关闭了我的应用程序,后台代码将正常运行但开关状态将更改为禁用.
每次关闭应用程序时,开关状态都将被禁用.有没有办法存储开关状态?
mySwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (mySwitch.isChecked()) {
SharedPreferences.Editor editor = getSharedPreferences ("com.mobileapp.smartapplocker",
MODE_PRIVATE).edit();
editor.putBoolean("Service On", true);
editor.commit();
}
else {
SharedPreferences.Editor editor = getSharedPreferences ("com.mobileapp.smartapplocker",
MODE_PRIVATE).edit();
editor.putBoolean("Service Off", false);
editor.commit();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为你对共享偏好如何在android中工作感到困惑.它们基本上是关键值对.因此,为了检索特定值,密钥必须相同.
给你一个例子如下:
mySwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
SharedPreferences.Editor editor = getSharedPreferences("com.mobileapp.smartapplocker", MODE_PRIVATE).edit();
editor.putBoolean("service_status", mySwitch.isChecked());
editor.commit();
}
}
Run Code Online (Sandbox Code Playgroud)
现在你在哪里检查服务
SharedPreferences prefs = getSharedPreferences("com.mobileapp.smartapplocker", MODE_PRIVATE);
boolean switchState = pref.getBoolean("service_status", false);
if(switchState){
//Do your work for service is selected on
} else {
//Code for service off
}
Run Code Online (Sandbox Code Playgroud)
希望有所帮助