轉載至:http://sunnylocus.iteye.com/blog/530969java.util.Timer計時器有管理任務延遲執行("如 1000ms後執行任務")以及週期性執行("如每500ms執行一次該任務")。但是,Timer存在一些缺陷,因此你應該考慮使用 ScheduledThreadPoolExecutor作為代替品,Timer對調度的支持是基於絕對時間,而不是相對時間的,由此任務對系統時鐘的改 變是敏感的;ScheduledThreadExecutor只支持相對時間。
Timer的另一個問題在於,如果TimerTask拋出未檢查的異常,Timer將會產生無法預料的行為。Timer線程並不捕獲異常,所以 TimerTask拋出的未檢查的異常會終止timer線程。這種情況下,Timer也不會再重新恢複線程的執行了;它錯誤的認為整個Timer都被取消 了。此時,已經被安排但尚未執行的TimerTask永遠不會再執行了,新的任務也不能被調度了。
所以timer的timetask只要不小心有例外,就會導致整個工作停止,永遠無法執行下個任務。反之,用ScheduledExecutorService就沒這種困擾,而且占用資源更少。
以下是範例程式碼:
![[Android程式範例] httpPost中文亂碼解決方案 [Android程式範例] httpPost中文亂碼解決方案](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDitrr0YaoUgwW-4yuveX7Ird5RJ7J6VhsBJc0ns7RJXPOwd7yBFrUqggDFmYpePSY-kjVXFvOjjBFGIjuRGbbDcQG7msjpvgOKXm-vr0Nkl78tDlU7dqfB2TMUiXp_HXxWOIhlhGcEhU/s1600/android101.jpg)

![[Android SDK特色教學] 使用FragmentPagerAdapter完成TAB導航與手勢滑動換頁 [Android SDK特色教學] 使用FragmentPagerAdapter完成TAB導航與手勢滑動換頁](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtd7BmNI8I5Ytww4OAZ4zYEDSNH7q_0t3zoahN9krhSpFENZXGXtXpUCoC1H3gdDzMRk93MsmQ6JDE-7WmkDX_FIzsmgw1loFbzh3SEQ1LasnZEDjLQY0VrBH1yZ2RVsjGjskGja0l3I0/s1600/2014080522244922.png)
![[Android SDK特色教學] EditText強制關閉螢幕鍵盤方法 [Android SDK特色教學] EditText強制關閉螢幕鍵盤方法](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBVAGWIZAW3uXEmBE5rNULUpeHYX08-c6XOEhodVYkjbA8052oce2upuKsP8M0NYsD0tnoDI_tJle1PKtQEmrnT3nleLVyO-23FyQekyi2A6u5oveyDhrfekOqiIo2rNDuBM0kBirKE-I/s1600/P20121002104247.png)
![[Android SDK特色教學] StartActivityForResult返回資料回來 [Android SDK特色教學] StartActivityForResult返回資料回來](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUi9a4lbYGt2AwfOH3KIHtPTFsq4HuS3yGlHHgvkj6CPXM_Jmuojou9PNhpcYnorUpj4Xxzxf0RZUYtvxuQHEgpp8epV3tiTW9cMfZ5GG7g14EtjBiyGU5l-QGX_AHX1srlwtMCe4Tgus/s1600/startActivityResultFor+diagrama.png)
![[Android程式範例] 利用好用的HTML Parser-Jsoup抓取網頁資料 [Android程式範例] 利用好用的HTML Parser-Jsoup抓取網頁資料](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdqQb7tRtfliXCJ4zB8JxRq4bC52vsXDFxnnvPRXFQ4AD74-H2EGnJnBIqmYU3fLk92XSlWflv-JTzwoxvV7Hmxk7-ea-0FlzTRYJyF_ydTQokppb88Xr0OhvbWb_iQ9rbYmGQ2_NSiNg/s1600/c541aea3aa3a533e82cbbebe118df275.jpg)
![[Android程式範例] 漂亮的計數器,可以用在遊戲分數顯示美化 [Android程式範例] 漂亮的計數器,可以用在遊戲分數顯示美化](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAEz-sa0k0L3uZD9W9VBNtDseKvip1gXE6EMcewE8mwgZXkeEeOi8iU94v3orO2wTdybSlioCq2vfrzUGhzOAK9fWyTd2WPWsEBZ6f3ERHyHoos1azukjh1lHnG3IfelcrPU9z5es1Y5A/s1600/456.gif)
![[Android程式範例] 下載網路檔案、圖片並儲存在SD記憶卡上面 [Android程式範例] 下載網路檔案、圖片並儲存在SD記憶卡上面](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGdPXWMvwnqtkFMCZnNjtwCYl06UGxYrh6oGhtC63Zi0owi5byqAgct3YwOSqxh1WbBdINJX-UWvA2pnWc6bwgrcfrD1Nf3egFQodzWrxUW1vvXFZ5Rq4n8U84bOJtLJAaHThs9ISnAeI/s1600/qw2.jpg)
![[Android程式範例] 寄送google email電子郵件的方法 [Android程式範例] 寄送google email電子郵件的方法](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYl6rm2xLjtcyywlnV2gvPIx1uSOjHflxcb8_9oMnM6nrffLDE3lo-JSzXNVd3Jh5CHUDcNDMj7PH25HI36xZxmSGg1-RZ5aeACIUx8-cnaHJ0tNWIalH3L3ee5wh8zzTt6HWpUbQaxMo/s1600/gmail-android.png)