android TimerTask 動態設定時間

來源:互聯網
上載者:User

Timer 以及TimerTask的用法,大概就是每隔一定的時間執行一段代碼。具體的這裡就不介紹了,比較簡單。

這篇部落格要說明的是,如何動態設定時間。
下面要說明的是Timer在設定了一個任務之後,會按照你指定的時間進行迴圈。這個時候,如果你想修改時間,是很困難的,因為系統沒有提供修改時間的介面。

我的做法是:把Timer和timertask都重新建立一個新的對象。再此設定你想要設定的時間。


   class MyTimerTask extends TimerTask {


        @Override
        public void run() {
            // TODO Auto-generated method stub
            dowhatyouwant();       

            if (mTaskTime != mGetDataTime) {

               mTimer.cancel();
                Log.i(TAG, "handlemessage mTaskTime is " + mTaskTime + " mGetDataTime is "
                        + mGetDataTime);
                mTimer = new Timer();
                mTaskTime = mGetDataTime;
                myTask = new MyTimerTask();
                mTimer.schedule(myTask, mTaskTime, mTaskTime);
            }
           
            Log.i(TAG, "get data in service!the time is " + mTaskTime);

        }

    }


在程式的其他地方重新設定mGetDataTime的值,當運行到run方法的時候,Timer會更新觸發的時間,下一次的觸發時間將會是你設定的mGetDataTime


 


作者:kkk0526

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.