Android-我尝试在每次单击按钮时重置计时器,并且当 5 秒未单击时,需要返回原始页面(活动)

发布于 2025-01-02 16:22:33 字数 622 浏览 2 评论 0原文

我试图在每次单击按钮时重置计时器,如果 5 秒内没有单击,它应该返回到原始页面(活动)。

到目前为止的代码:

clicker.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

        if(seconds==5000){timer.cancel();} //It crashed when I added this line

        counter++;

        seconds = 5000;
        timer.schedule(new TimerTask() {
            public void run() {
                Intent x =  new Intent(startClickActivity.this, ClickCountActivity.class);
                startActivity(x);
            }
        }, seconds);
    }
});

我不知道要使用哪种计时器或者是否应该使用线程。

I'm trying to reset my timer every time a button is clicked, and if not clicked within 5 seconds, it should go back to the original page (activity).

Code so far:

clicker.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

        if(seconds==5000){timer.cancel();} //It crashed when I added this line

        counter++;

        seconds = 5000;
        timer.schedule(new TimerTask() {
            public void run() {
                Intent x =  new Intent(startClickActivity.this, ClickCountActivity.class);
                startActivity(x);
            }
        }, seconds);
    }
});

I don't know what kind of timer to use or if I should be using threads.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

江湖彼岸 2025-01-09 16:22:34

这应该在你的班级内。

class MyTimerTask extends TimerTask
{
   public void run()
   {
      Intent x =  new Intent(startClickActivity.this, ClickCountActivity.class);
      startActivity(x);
   }
}

这在老地方。

// ...
// Your code
MyTimerTask task = new MyTimerTask();
final long seconds = 5;
timer.schedule(task,seconds*1000L);
clicker.setOnClickListener(new View.OnClickListener() 
{
   public void onClick(View v) 
   {                                                                   
      counter++;
      task.cancel();
      task = new MyTimerTask();
      timer.schedule(task,seconds*1000L);
   }
});

我认为它应该工作得很好:)

顺便说一句,你的代码:

if(seconds==5000)
   timer.cancel(); 

将始终取消/终止你的计时器,因为 seconds 变量是由你设置的并且始终为 5000。

This should be inside your class.

class MyTimerTask extends TimerTask
{
   public void run()
   {
      Intent x =  new Intent(startClickActivity.this, ClickCountActivity.class);
      startActivity(x);
   }
}

And this in old place.

// ...
// Your code
MyTimerTask task = new MyTimerTask();
final long seconds = 5;
timer.schedule(task,seconds*1000L);
clicker.setOnClickListener(new View.OnClickListener() 
{
   public void onClick(View v) 
   {                                                                   
      counter++;
      task.cancel();
      task = new MyTimerTask();
      timer.schedule(task,seconds*1000L);
   }
});

I think it should work well :)

By the way, your code:

if(seconds==5000)
   timer.cancel(); 

Will always cancel/terminate your timer, because seconds variable is set by you and always is 5000.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文