Реализация истечения срока действия OTP в Android - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть требование для реализации. В своей деятельности я получаю OTP для входа в систему, срок действия OTP истекает через 90 секунд.

Вопросы

1> Лучше всего использовать Alarm Managerреализовать 90-секундный срок?

2> Если я получил OTP, и в то же время я получаю вызов, и когда вызов завершается через 90 секунд, и когда я возвращаюсь к исходному действию, пользователю должно быть показановсплывающее окно с сообщением об истечении срока действия OTP?

любая помощь будет оценена.

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Вы можете использовать TimerTask, как показано ниже:

public class AndroidTimerTaskExample extends Activity {

Timer timer;
TimerTask timerTask;

        //we are going to use a handler to be able to run in our TimerTask
        final Handler handler = new Handler();

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }

        @Override
        protected void onResume() {
            super.onResume();

            //onResume we start our timer so it can start when the app comes from the background
            startTimer();
        }

        public void startTimer() {
            //set a new Timer
            timer = new Timer();

            //initialize the TimerTask's job
            initializeTimerTask();

            //schedule the timer, after the first 5000ms the TimerTask will run every 10000ms
            timer.schedule(timerTask, 5000, 10000); //
        }

        public void stoptimertask(View v) {
            //stop the timer, if it's not already null
            if (timer != null) {
                timer.cancel();
                timer = null;
            }
        }

        public void initializeTimerTask() {

            timerTask = new TimerTask() {
                public void run() {

                    //use a handler to run a toast that shows the current timestamp
                    handler.post(new Runnable() {
                        public void run() {
                            //get the current timeStamp
                            Calendar calendar = Calendar.getInstance();
                            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
                            final String strDate = simpleDateFormat.format(calendar.getTime());

                            //show the toast
                            int duration = Toast.LENGTH_SHORT;  
                            Toast toast = Toast.makeText(getApplicationContext(), strDate, duration);
                            toast.show();
                        }
                    });
                }
            };
        }}

Вы можете изменить запуск и остановку Задачи в соответствии с вашим вызовом и инициализировать тоже, когда захотите.

0 голосов
/ 28 ноября 2018

Использовать CountDownTimer

new CountDownTimer(90000, 1000) {
 public void onTick(long millisUntilFinished) {
     Log.d("seconds remaining: " , millisUntilFinished / 1000);
 }

 public void onFinish() {
     // Called after timer finishes
 }
}.start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...