簡體   English   中英

Android Java Timer()

[英]Android Java Timer()

由於其准確性,我使用Timer(),但其工作原理與PostDelayed Handler相同。 它只被調用一次。 這是計時器代碼:

    public void setWFT() {
        WFT = new Timer();
        WFT.schedule(new TimerTask() {          
            @Override
            public void run() {
                WFTTimerMethod();
            }
        }, 60000); // 60 seconds delay
    }

    private void WFTTimerMethod() {
        this.runOnUiThread(Timer_Tick);
    }

    private Runnable Timer_Tick = new Runnable() {
        public void run() {
            // My commands here
        }
    };

計時器啟動后,僅在60秒后調用一次run()。 有時,我必須取消計時器以更新延遲(替換“ 60000”值)。 要再次啟動計時器,我只需通過使用新的延遲值再次調用WFT()來重新創建計時器。

問題是,當我使用以下方法取消計時器時:

WFT.cancel();
WFT.purge();

計時器無法啟動。 run()在應該執行的時候不執行。 所以我的問題是我要使用cancel()和purge()還是只使用cancel()?

謝謝

purge() 的Java API中

大多數程序將不需要調用此方法。 它設計用於少數應用程序,該應用程序可取消大量任務。 調用此方法會以時間換取空間:該方法的運行時間可能與n + c log n成正比,其中n是隊列中的任務數,而c是已取消任務的數。

所以你只需要調用cancel()

cancel()文檔中:

不能在此計時器上安排更多任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM