AndroidTimer使用(三)补充篇

 

Android 的Timer 一般如下面所写

Timer timer = new Timer();  
TimerTask task = new TimerTask() {  
    public void run() {  
        Message message = new Message();  
        message.what = 1;  
        handler.sendMessage(message);  
  
    }  
  
};  
final Handler handler = new Handler() {  
  
    public void handleMessage(Message msg) {  
        switch (msg.what) {  
        case 1:  
            Log.e("Timer", "Timer");  
            update();  
            break;  
        }  
        super.handleMessage(msg);  
    }  
  
};  
protected void onDestroy() {  
    if (timer != null) {  
        timer.cancel();  
        timer = null;  
    }  
    super.onDestroy();  
}  

最重要一点是timer.schedule(task, 1000, 5000);如果设置为timer.schedule(task, 5000)是不会工作的。

protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    this.setContentView(R.layout.main);  
                               timer.schedule(task, 1000, 5000);  
                }  

但更好的方法是通过下面的代码

private Handler handler = new Handler();  
  
private Runnable runnable = new Runnable() {  
  
    public void run() {  
        update();  
        handler.postDelayed(this, 1000);  
    }  
  
};  

开始Timer

handler.postDelayed(runnable, 1000);  

停止Timer

handler.removeCallbacks(runnable); 
原文地址:https://www.cnblogs.com/xuewater/p/2594668.html