繁体   English   中英

Android Java中的计时器

[英]Timer in android java

我在activity2中有2个活动,在活动on_Destroy中启动活动创建计时器时,我有一个计时器,我放置了timer_task.cancel();。 但是当第二次打开Activity2时,它创建新的计时器任务,而不是取消或销毁最后一个计时器,并且在一个活动中运行2个计时器

我的密码

    private  TimerTask mTimerTask;
private void doTimerTask(){
    nCounter = 4;

    qtimer.setMax(20);

    if(mTimerTask!=null) {
        mTimerTask.cancel();
    }

    mTimerTask = new TimerTask() {
        public void run() {
            handler.post(new Runnable() {
                public void run() {
                    Log.d("Timerrrr",nCounter+"");
                    if(nCounter<1){
                        Finished();
                    }else {
                        qtimer.setProgress(nCounter);
                        nCounter--;
                    }
                }
            });
        }};

    // public void schedule (TimerTask task, long delay, long period)
    t.schedule(mTimerTask, 0, 1000);  //

}

private void stopTask() {

    if (mTimerTask != null) {
        Log.d("nCounter canceled",nCounter+"");
        mTimerTask.cancel();
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    mTimerTask.cancel();
    MainActivity.this.finish();
}

尝试这个...

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

您在哪里调用stopTask()方法?

而且我建议不要放mTimerTask.cancel(); onDestroy() ,但将其放在onStop()

我希望这可以帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM