我有一个简单的问题,我怎么能停止计时器?

 Button bCancel = (Button)findViewById(R.id.bt1);
 bCancel.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            finish();
            startActivity(new Intent("com.jom.testcdt2.CANCELCLASS"));

        }
    });


    final Thread logoTimer = new Thread(){
        public void run(){
            try {
                int logoTimer = 0;
                while (logoTimer < 10000) {
                    sleep(100);
                    logoTimer = logoTimer + 100;

                }
                startActivity(new Intent("com.jom.testcdt2.CLEARSCREEN"));
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
            finally{
                finish();
            }
        }
    };
    logoTimer.start();    
} 

当我按下按钮bCancel时,它会启动一个新活动,但是计时器仍在运行,10秒后它会启动CLEARSCREEN。 点击我希望计时器停止。 我怎样才能做到这一点?

===============>>#1 票数:5 已采纳

我建议使用CountDownTimer

final CountDownTimer myTimer = new CountDownTimer(10000, 5000) {
@Override
public void onFinish() {
    //DO SOMETHING AFTER 10 000 ms
    }

    @Override
    public void onTick(long millisUntilFinished) {
    //DO SOMETHING EVERY 5 000 ms until stopped
    }
}
myTimer.start() //Starts it
myTimer.cancel() //Stops it

而不是写作

(new Intent("com.jom.testcdt2.CANCELCLASS")

你应该使用

(new Intent(YOURCLASS.this, CancelClass.class)

===============>>#2 票数:3

您可以尝试使用在while循环中检查的布尔值,并在按下取消按钮时将其设置为true吗?

boolean pressedCancel = false;
.... 

while (logoTimer < 10000 && !pressedCancel) {
    ....

  ask by JanOlMajti translate from so

未解决问题?本站智能推荐:

5回复

停止和启动计时器

对不起我的英语不好。 我有计时器,如果我单击计时器,我会发出魔杖,如果我再次单击,则计时器关闭。 但是我的计时器只有一次。 如果我再次单击(关闭计时器),则会出现如下异常: 我不知道为什么它不起作用,请帮助。 在我班下 我的课
1回复

停止片段计时器onCloseActivity

我有一个片段,当你初始化时,计时器立即开始运行,它每6秒显示一个不同的图像。 我还没有完全弄清楚这个计时器是如何工作的,但不知怎的,我让它运行,我明白计时器运行在一个不同的线程......甚至不确定究竟是什么意思:) 但是当我加载不同的片段时,计时器会导致崩溃。 所以我想我必须在活
2回复

在不停止计时器的情况下停止TimerTask

我有一个Timer并使用scheduleAtFixedRate方法以一定的固定速率为其安排了任务。 问题是,在执行某些操作后,我想完成/取消之前计划的任务。 我知道我可以使用.cancel()或.purge()但是那会取消/完成我的计时器,这是我不想要的。 我只想完成任务。 你们
1回复

单击启动和停止计时器服务

我有一个在后台运行的服务,每15分钟运行一次,它将显示一个通知或对话框。 但是,如何才能启动和停止FAB的OnClick? 该按钮当前显示一个Snack Bar OnClick。 我想添加If / Else代码以启动和停止服务。 我怎样才能做到这一点? 这是服务: 这是我要
2回复

onPause,onStop,onDestroy不停止计时器

在我的活动的onCreate方法中,我从对象中调用一个方法,并将方法值传递为1,这意味着要在对象类中启动计时器。 但是,我想在应用程序关闭,失去焦点或有人按下设备上的后退按钮并退出应用程序时停止计时器。 我尝试在具有onPause,onStop,onDestroy的onCreate方法下面执
2回复

如何在一定时间后停止计时器?

我有一个Android应用程序,它有一个计时器来运行任务: 让我们说sampling_interval是2000,sending_interval是4000。 所以在这个应用程序中,我将一些读数值从传感器发送到服务器。 但我想在10000(10秒)后停止发送。 我该怎么办?
1回复

Android通话通知-单击时停止计时器

当用户在我的应用中收到视频通话时,我会发出通知。 我的通知: 要重复通知直到用户回答(或有限的时间),我想添加一个计时器(如此处的说明: Android / Java中的JavaScript setInterval / setTimeout等效于什么? ) 但是当用户做出选择
1回复

我需要停止计时器和运行帧动画

我有一个游戏,其中的“图片视图”会在计时器上更改。 单击(停止)按钮时,将调用更新以更新得分并旋转。 我需要停顿whammy(); 会被调用并运行帧动画,然后在动画结束时重新启动计时器。 我试图打电话给sleep(2500); 但它会使所有内容等待2.5秒,然后帧动画会与图像查看计时器
3回复

如何停止另一个活动的活动计时器

现在我有一个活动,比方说运行计时器的“活动A”。 时间到了,可以更新我的Firebase。 timer.scedule(new TimerTask()){ @Override public void run() { notification(); Firebase areaRe
2回复

屏幕关闭时计时器停止工作

嗨,我是Android和Java lang的新手。 我有这段代码,告诉您您玩了多长时间了。 该代码工作正常,除非屏幕关闭或用户按下电源按钮(睡眠模式)时它停止工作。 任何人都可以建议一个简单的代码来使我的时间保持计数,即使在屏幕关闭或处于睡眠模式时也是如此。 谢谢...