Android Timer 更好方法

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);

 

可浏览下面的资料:http://www.muktosoft.com/blog/timer-in-android-the-better-way/

你可能感兴趣的:(android,工作,Blog)