android Timer与TimerTask的相关操作
?項目上面的部分操作需要使用到定時器進行周期性的控制。網絡上面對于定時器的操作通常有三種實現方法。
我是通過Timer與TimerTask相結合實現的定時器功能。具體實現過程如下:
第一步,得到Timer的實例化對象
??Timer?timer=?new?Timer()?;
第二步,實例化TimerTask對象
???????TimerTask?timerTask?=?new?TimerTask(){
??????????publicvoid?run(){
???????????????//Doing?something
???????????}
??}
??實例化TimerTask對象的時候,需要重寫它的run()方法,然后在這個方法體內增加需要執行的具體操作。比如??輸出一句話,發送一個消息之類的。
第三步,啟動定時器
???????Timer.schedule(TimerTask,?delay,?period)?;
???????這樣創建并啟動一個定時器的工作就完成,但是在實際使用的過程中,可能會需要一些其他方面的操作手段。
???????因為在項目程序運行過程中,某個時刻定時器的參數被修改,比如delay,period。為了及時的使用最新的正確的數據,就需要對已經存在的定時器進行關閉并且使用新的參數重新創建并啟動。
???????第一步,取消TimerTask,并在定時器Timer隊列中將其刪除。
???????If(timerTask?==?null){
???????timerTask?.cancel()?;
??????}
第二步,重新啟動定時器
???????If(timerTask!=?null){
????????timerTask?=?new?TimerTask(
?????public?void?run(){
?????//do?something
}
???)?;
??????}
???????timer.schedule(timeTask,delay,period)?;
???????值得注意的地方是被執行了cancle()方法之后的TimerTask,在重新啟動定時器的時候,必須重新實例化TimerTask才OK,不然會報“java.lang.IllegalStateException:TimerTask?is?scheduled?already”的錯誤。每個定時器任務TimerTask只能被放置一次總結
以上是生活随笔為你收集整理的android Timer与TimerTask的相关操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android表格布局(Table La
- 下一篇: android 常用方法集合