правильный ли мой код цикла для java?

это правильно? я изменяю исходный код из 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);

person 1211asd    schedule 02.12.2014    source источник
comment
Для такого рода проблем вам следует использовать alarmmanager: developer.android.com/reference/android /app/AlarmManager.html   -  person Jonno_FTW    schedule 02.12.2014
comment
я просто новичок в разработке Android, и я не знаю, как их использовать и создавать :(   -  person 1211asd    schedule 02.12.2014
comment
Вы можете прочитать руководство и начать обучение здесь: developer.android.com/training/scheduling /alarms.html   -  person Jonno_FTW    schedule 02.12.2014


Ответы (1)


Этот цикл do/while не может закончиться, на данный момент это бесконечный цикл. Логическому «startcountdown» нужен какой-то способ, чтобы в конечном итоге перейти к значению FALSE. Например

if (_iIsCharging == 0) {
    startcountdown = false;
}
person Tyler Lazenby    schedule 02.12.2014
comment
тогда что, если я хочу сделать это снова правдой? Кстати, это внутри корпуса переключателя, весь цикл do - person 1211asd; 02.12.2014
comment
о, я понял, как сделать этот TNX - person 1211asd; 02.12.2014