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. };

Java代码
  1. final Handler handler = new Handler() {
  2. public void handleMessage(Message msg) {
  3. switch (msg.what) {
  4. case 1:
  5. Log.e("Timer", "Timer");
  6. update();
  7. break;
  8. }
  9. super.handleMessage(msg);
  10. }
  11. };

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. private Runnable runnable = new Runnable() {
  3. public void run() {
  4. update();
  5. handler.postDelayed(this, 1000);
  6. }
  7. };

开始Timer

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

停止Timer

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


posted @ 2010-06-25 18:23  looky  阅读(147)  评论(0编辑  收藏  举报