Android Timer 更好方法

本文介绍了Android中使用Timer和Handler实现定时任务的两种方法,并详细对比了它们的优劣。推荐使用Handler配合Runnable的方式,这种方法更为高效且易于管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值