Android Timer 更好方法

Android 的Timer 一般如下面所写
 
Java代码 
  1. Timer timer = new Timer();   
  2. TimerTask task = new TimerTask() {   
  3.     public void run() {   
  4.         Message message = new Message();   
  5.         message.what = 1;   
  6.         handler.sendMessage(message);   
  7.    
  8.     }   
  9.    
  10. };  
 
Java代码 
  1. final Handler handler = new Handler() {   
  2.    
  3.     public void handleMessage(Message msg) {   
  4.         switch (msg.what) {   
  5.         case 1:   
  6.             Log.e("Timer", "Timer");   
  7.             update();   
  8.             break;   
  9.         }   
  10.         super.handleMessage(msg);   
  11.     }   
  12.    
  13. };  
 
Java代码 
  1. protected void onDestroy() {   
  2.     if (timer != null) {   
  3.         timer.cancel();   
  4.         timer = null;   
  5.     }   
  6.     super.onDestroy();   
  7. }  
 
最重要一点是timer.schedule(task, 1000, 5000);如果设置为timer.schedule(task, 5000)是不会工作的。
 
Java代码 
  1. protected void onCreate(Bundle savedInstanceState) {   
  2.     super.onCreate(savedInstanceState);   
  3.     this.setContentView(R.layout.main);   
  4.                                timer.schedule(task, 1000, 5000);   
  5.                 }  
  
但更好的方法是通过下面的代码
 
Java代码 
  1. private Handler handler = new Handler();   
  2.    
  3. private Runnable runnable = new Runnable() {   
  4.    
  5.     public void run() {   
  6.         update();   
  7.         handler.postDelayed(this, 1000);   
  8.     }   
  9.    
  10. };  
 
开始Timer
 
Java代码 
  1. handler.postDelayed(runnable, 1000);  
 
停止Timer
 
Java代码 
  1. handler.removeCallbacks(runnable);  

Android Timer 更好方法 - Tienfook - Tienfooks Blogs. 
posted @ 2010-06-25 18:23  looky  阅读(804)  评论(0编辑  收藏  举报