Timer屬性:http://www.apihome.cn/api/java/Timer.html
聲明創建:
1 private Timer mTimer; 2 3 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 this.setContentView(R.layout.main); 7 8 timer = new Timer(); 9 timer.schedule(task, 1000, 5000); 11 } 13 14 TimerTask task = new TimerTask() { 15 @Override 16 public void run() { 18 Message message = new Message(); 20 message.what = 1; 22 handler.sendMessage(message); 24 } 26 }; 27 28 final Handler handler = new Handler() { 30 public void handleMessage(Message msg) { 32 switch (msg.what) { 34 case 1: 36 log.e("Timer", "Timer"); 38 //要實現的功能代碼:update(); 40 break; 42 } 44 super.handleMessage(msg); 46 } 48 }; 49 50 protected void onDestroy() { 52 if (timer != null) { 54 timer.cancel(); 56 timer = null; 58 } 60 super.onDestroy(); 62 }
最重要的一點是 timer.schedule(task,1000,5000),如果設置為 timer.schedule(task,5000)是不會工作的。
因為timer.schedule(task,5000) 是表示執行一次的任務。
timer.schedule(task,1000,5000)表示 1 秒鍾后開始 5 秒鍾為周期 重復執行
1 private Handler handler = new Handler( ); 2 3 private Runnable runnable = new Runnable( ) { 4 5 public void run ( ) { 6 7 update( ); 8 9 handler.postDelayed(this,1000); //postDelayed(this,1000)方法安排一個Runnable對象到主線程隊列中 10 11 } 12 13 }; 14 15 handler.postDelayed(runnable,1000); // 開始Timer 16 17 handler.removeCallbacks(runnable); //停止Timer
(轉自:http://blog.csdn.net/jincf2011/article/details/6603916)