首页 > 解决方案 > 当用户在 Activity Android 中输入时间过长时自动重定向

问题描述

我有一个场景,当用户评分或输入数据时,当前活动会将其计时到设定的时间。所以,如果用户没有做任何事情,或者采取行动到长,那么当前的活动将引导用户进入主活动。

就我而言,我有一个评级应用程序,它位于公共场所。我认为如果人们想要评分但没有完成测验阶段,那么我不想离开最后一个测验来结识想要评分的新人。

我试过使用这些代码:

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

它可以工作,但没有按预期工作,因为它适用于所有活动(我的意思是,在这些代码在当前活动中工作之后,其余活动也被应用和计时)

我不想要这个。我想要的是仅在当前活动中应用这些计时器。如何做到这一点?

感谢任何帮助,问候。

标签: androidtimerruntimehandler

解决方案


我没有完全理解你真正想要做什么,
但我猜想使用 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();

推荐阅读