Как отключить кнопку с таймером и оставить ее отключенной при перезапуске? - PullRequest
0 голосов
/ 11 февраля 2019

Итак, моя цель - нажать кнопку, отключить ее и запустить таймер, как только таймер включится, включите кнопку.Просто верно?Вы бы сделали что-то вроде этого.

button1.onClick { 

button1.setEnabled(false);
    new CountDownTimer(60000, 1000) { //Set Timer for 5 seconds
            public void onTick(long millisUntilFinished) {
            }

            @Override
            public void onFinish() {
                   button1.setEnabled(true);
            }
        }.start()

}

Однако .. Если пользователь закроет приложение во время работы таймера, кнопка снова будет активирована, перезапустив таймер.поэтому вместо того, чтобы ждать 60 секунд, пользователь может просто закрыть приложение и открыть его в течение 10 секунд.

Итак, мой вопрос: как отключить кнопку на 60 секунд и оставить ее отключенной, даже еслипользователь закрывает и открывает приложение до истечения 60 секунд?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Попробуйте это с обработчиком.

 btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            btn.setEnabled(false);

         new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                // This method will be executed once the timer is over
                    btn.setEnabled(true);
                    Log.d(TAG,"resend1");

            }
        },10000);// set time as per your requirement 
        }
    });
0 голосов
/ 11 февраля 2019

Вы должны сохранить эту информацию в хранилище данных, которая хранит ее даже при выключенном приложении.

Один из способов сделать это - использовать https://developer.android.com/training/data-storage/shared-preferences

Вы должны получить метку времени при запуске таймера или вычислить «время окончания» для таймера.Затем вы сохраняете эту информацию, и при каждом запуске приложения вы сначала проверяете, есть ли в ваших настройках такая отметка времени.И если это так, вы проверяете, находитесь ли вы в этом «временном» окне.

Три ключевых момента, которые нужно запомнить: вы должны удалить постоянную информацию, когда таймер включен, и: если кто-то изменит системные часытем временем у тебя тоже есть проблемы.Работа с этим возможна, но требует больше усилий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...