Android 如果我不想检查两次条件,该怎么办?

Android 如果我不想检查两次条件,该怎么办?,android,Android,我正在做一个小项目,如果电池电量低于30%,我会将wifi设置为禁用。但是,如果用户再次启用wifi,我希望它不能再次禁用。 我在服务课上完成了全部工作 我使用的代码是。。。 请给出任何建议。你的建议对我很有价值 public class BatteryService extends Service boolean checkwifi; WifiManager mainWifi; public void onCreate() { // TODO

我正在做一个小项目,如果电池电量低于30%,我会将wifi设置为禁用。但是,如果用户再次启用wifi,我希望它不能再次禁用。 我在服务课上完成了全部工作 我使用的代码是。。。 请给出任何建议。你的建议对我很有价值

public class BatteryService extends Service
    boolean checkwifi;
    WifiManager mainWifi;

    public void onCreate() {
            // TODO Auto-generated method stub
            super.onCreate();
            checkwifi = true;
            mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);    
        }


    if (level <= 30 && !isCharging) {
                    tts.speak(" Battery LOw Connect Phone to Charger",
                            TextToSpeech.QUEUE_FLUSH, null);
                    if (checkwifi) {
                        mainWifi.setWifiEnabled(false);
                        bt.disable();
                        closemobiledata();
                        checkwifi = false;
                    }
}
公共类BatteryService扩展服务
布尔校验;
WifiManager mainWifi;
public void onCreate(){
//TODO自动生成的方法存根
super.onCreate();
checkwifi=true;
mainWifi=(WifiManager)getSystemService(Context.WIFI\u SERVICE);
}

如果(级别为
android.net.wifi.wifi\u STATE\u CHANGED
事件创建一个接收器。使用SharedReferences将
userEnabledWifi
设置为
true
,如果在禁用wifi后wifi被激活。在禁用wifi之前,请在服务中检查
userEnabledWifi
。如果电池电量超过%30,请再次重置
UserEnablebLED wifi
,这样,如果电池电量再次低于%30,您可以禁用wifi。

有什么区别?您应该能够在服务中注册电池事件接收器,方法与您在活动中所做的相同。例如:

private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
    int rawLevel = intent.getIntExtra("level", -1);
    int scale = intent.getIntExtra("scale", -1);
    int status = intent.getIntExtra("status", -1);

if (rawLevel <= 30 && !isCharging) {
                    tts.speak(" Battery LOw Connect Phone to Charger",
                            TextToSpeech.QUEUE_FLUSH, null);
                    if (checkwifi) {
                        mainWifi.setWifiEnabled(false);
                        bt.disable();
                        closemobiledata();
                        checkwifi = false;
                    }
        // Do something
    }
};

public void onCreate() {
    registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}

public void onDestroy() {
     unregisterReceiver(this.mBatInfoReceiver);
}
private final BroadcastReceiver mBatInfoReceiver=新的BroadcastReceiver(){
@凌驾
公共void onReceive(上下文arg0,意图){
int rawLevel=intent.getIntExtra(“级别”,-1);
int scale=intent.getIntExtra(“scale”,-1);
int status=intent.getIntExtra(“status”,-1);

如果(rawLevel),您需要的是广播接收器,以便在网络连接类型更改时收到通知。请参阅以下内容:
private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
    int rawLevel = intent.getIntExtra("level", -1);
    int scale = intent.getIntExtra("scale", -1);
    int status = intent.getIntExtra("status", -1);

if (rawLevel <= 30 && !isCharging) {
                    tts.speak(" Battery LOw Connect Phone to Charger",
                            TextToSpeech.QUEUE_FLUSH, null);
                    if (checkwifi) {
                        mainWifi.setWifiEnabled(false);
                        bt.disable();
                        closemobiledata();
                        checkwifi = false;
                    }
        // Do something
    }
};

public void onCreate() {
    registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}

public void onDestroy() {
     unregisterReceiver(this.mBatInfoReceiver);
}