初识android.os.Handler

今天学习了android.os.Handler 这个类,为了加强记忆,做下总结~


整体理解是话,可以把Handler理解为线程队列的管理者,队列里的线程将会被系统逐个取出运行,我们可以用Handler来操作这个队列里的线程~


//添加线程1

handler.post(thread1);

//延时1秒后添加线程1

handler.postDelayed(thread1,1000);

//清除线程1

handler.removeCallbacks(thread1);

	/**监听器,内部类	 */
	class myOnClickListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			switch (v.getId()) {
			case R.id.start1:
				Toast.makeText(DemoHandler.this, "线程1开始", Toast.LENGTH_SHORT).show();
				//添加线程1
				handler.post(thread1);
				break;
			case R.id.stop1:
				Toast.makeText(DemoHandler.this, "线程1结束", Toast.LENGTH_SHORT).show();
				//清除线程1
				handler.removeCallbacks(thread1);
				break;
			default:
				break;
			}
			
		}}
	/**线程1,内部类 */
	class updateThread1 implements Runnable{

		@Override
		public void run() {
			//延时1秒后添加线程1
			handler.postDelayed(thread1,1000);
			//设置进度条1的值~
			progressBar1.setProgress(progressBar1.getProgress()+step1);
			//转向
			if( progressBar1.getProgress()>=progressBar1.getMax() || progressBar1.getProgress()<=0) 
				step1=-step1;
			
		}}

其中 thread1 是 updateThread1 的对象!


当开始按钮被按下时,handler 就会把 thread1  第一次添加到队列里,等待系统运行,运行时,thread1 这个线程执行了一些动作的同时,又使用handler把自己延时添加到队列里,

这样,thread1 这个线程就开始间隔1秒运行一次,直到 调用 handler 的 removeCallbacks 把这个线程清除~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值