我希望能显示服务的状态,无论是运行还是停止。我使用下面的代码,但它在启动服务之前就显示“已停止”。当服务开始运行时,它会显示“正在运行”。再次停止服务时,它仍然只显示“正在运行”。请问我在设置共享偏好状态方面有任何错误吗? 在MainActivity中
onCreate()
{
checkServiceStatus() ;
}
private void checkServiceStatus()
{
Toast.makeText(getApplicationContext(),"in enableControls", Toast.LENGTH_LONG).show();
boolean isServiceRunning = AppSettings.getServiceRunning(this);
if (isServiceRunning)
{
Toast.makeText(getApplicationContext(),"service running", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(),"service stopped", Toast.LENGTH_LONG).show();
}
}
public class AppSettings
{
public static final String SERVICE_STATE = "isServiceRunning";
public static boolean getServiceRunning(Context context){
SharedPreferences pref = context.getSharedPreferences(GPSLOGGER_PREF_NAME, 0);
return pref.getBoolean(SERVICE_STATE, false);
}
public static void setServiceRunning(Context context, boolean isRunning){
SharedPreferences pref = context.getSharedPreferences(GPSLOGGER_PREF_NAME, 0);
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean(SERVICE_STATE, isRunning);
editor.commit();
}