Автоматическое перенаправление, когда пользователь слишком долго вводит данные в Android активности - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть сценарий, который, когда пользовательский рейтинг или ввод данных, то текущая активность будет время его до установленного времени. Таким образом, если Пользователь ничего не делает или не предпринимает Действие в Лонге, то текущая Активность направит Пользователя в MainActivity.

В моем случае у меня есть приложение Rating, которое находится в публичном месте. Я подумал, что если люди хотят оценить, НО не завершив фазу викторины, то я не хочу выходить из последней викторины, чтобы встретить новых людей, которые хотят оценить.

Я пытался использовать этот код:

int timeout = 4000;
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                Intent homepage = new Intent(Quiz2.this, MainActivity.class);
                startActivity(homepage);
                finish();
            }
        }, timeout);

И вот эти:

Handler handler = new Handler();
        handler.postDelayed(new Runnable() {

            @Override
            public void run() {
                startActivity(new Intent(Quiz2.this, MainActivity.class));
            }
        }, 4000);

Работает, но не работает должным образом, поскольку применяется ко ВСЕМ действиям (я имею в виду, что после того, как этот код работает в Текущем действии, остальные действия также применяются и синхронизируются)

Я не хочу этого. То, что я хочу, это применить эти таймер ТОЛЬКО в текущей деятельности. Как это можно сделать?

Благодарю за любую помощь, С уважением.

1 Ответ

0 голосов
/ 05 сентября 2018

Я не совсем понял, что ты на самом деле хочешь делать,
но я предполагаю, что используя CountDownTimer, а затем запустим другое действие, когда таймер завершит свою работу.

new CountDownTimer(4000, 1000) {

 public void onTick(long millisUntilFinished) {
     // You could show the user the time left using `millisUntilFinished`
 }

 public void onFinish() {
     // Do something when the timer is finished (start your activity & finish)
 }
}.start();
...