是我为java做的循环代码是否正确?

问题描述:

这是正确的吗? 即时修改从github的源代码:USB CHARGE COMMANDER 当电池从20%下降,它将收取 当电击时80它不会 和倒计时器是它每5分钟做一次 我设置20000只是为了测试是我为java做的循环代码是否正确?

boolean startcountdown=true; 
    do{ 
     new CountDownTimer(20000, 1000) { 

     Intent intent = _context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
     int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); 
     int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100); 
     int percent = (level*100)/scale; 

     public void onTick(long millisUntilFinished) {} 

     public void onFinish() { 
       if(percent <= 20){ 
         _iIsCharging = 1; 
       } 
       else if (percent >=80){ 
         _iIsCharging = 0; 
       } 
       else{ 
         _iIsCharging = 1; 
       } 
      } 
     }.start(); 
     }while(startcountdown); 
+0

你应该alarmmanager对于这类问题:https://developer.android.com/reference/android/app/AlarmManager.html – 2014-12-02 03:00:11

+0

我只是个初学者在Android开发人员,我不知道如何使用和构建那些:( – 1211asd 2014-12-02 03:05:14

+0

那么你可以阅读教程,并开始在这里学习:https://developer.android.com/training/scheduling/alarms.html – 2014-12-02 03:08:04

这个do/while循环没有办法结束,这是一个无限循环。布尔“startcountdown”需要一些方法来最终转化为FALSE的值。例如

if (_iIsCharging == 0) { 
    startcountdown = false; 
} 
+0

那么如果我想使它真的再次? 顺便说一句在开关柜内,整个做循环 – 1211asd 2014-12-02 03:10:55

+0

哦,我已经想出了如何做到这一点TNX – 1211asd 2014-12-02 03:23:08