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, 10005000);  
  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(this1000);  
  8.     }  
  9.   
  10. };  

 

开始Timer

 

Java代码 
  1. handler.postDelayed(runnable, 1000);  

 

停止Timer

 

Java代码 
  1. handler.removeCallbacks(runnable);  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值