0

これは正しいです?私はgithubからソースコードを変更しています:USB CHARGE COMMANDERは、バッテリーが20パーセントから低下すると、バッテリーが80パーセントになると充電されます。カウントダウンタイマーは、5分ごとにこれを行うためのものです。テスト用に20000を設定しました

    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);
4

1 に答える 1

0

この do/while ループを終了する方法はありません。現時点では無限ループです。ブール値の "startcountdown" には、最終的に FALSE の値になる何らかの方法が必要です。例えば

if (_iIsCharging == 0) {
    startcountdown = false;
}
于 2014-12-02T03:04:34.660 に答える