簡體   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