我正在制作一个小型项目,其中我将无线网络设置为禁用,如果电池电量低于30%。但如果用户再次启用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;
}
}
更新1:
我发现这个问题,这个问题是服务一次又一次地开始 做什么,这样的服务一定不能一次又一次启动
public class BatteryService extends Service
boolean checkwifi;
WifiManager mainWifi;
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Toast.makeText(getApplicationContext(), "Service created", Toast.LENGTH_SHORT).show();
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;
}
}
你需要的是一个广播接收器得到通知时,网络连接类型changes..see如下:http://stackoverflow.com/questions/10733121/broadcastreceiver-when-wifi-or -3G网络状态改变的 –