handler相关

1、延迟多少秒去执行

new Handler(){
	@Override
	public void handleMessage(Message msg){
		//TODO
	}
}.sendEmptyMessageDelayed(0, 500);

new Handler().postDelayed(new Runnable(){
	@Override
	public void run(){
    		//TODO
	}
},3000);

2

private static final int ROTATE_DONE = 100;

rHandler.sendEmptyMessage(ROTATE_DONE);

protected Handler rHandler = new Handler(){
	@Override
	public void dispatchMessage(Message msg) {
		switch (msg.what) {
		case ROTATE_DONE:
			//TODO
			break;
		default:
			break;
		}
	}	
};
3、 Object
Message msg = myHandler.obtainMessage();
//传递object类型,bean为要传递的Object,为SmartZoneBean 
msg.obj = bean;  
// 发送消息
msg.sendToTarget();


private Handler myHandler = new Handler() {
	public void handleMessage(android.os.Message msg) {
		//获取传递过来的Object
		SmartZoneBean bean = (SmartZoneBean)msg.obj;
		//TODO
	};
};

4.传递int,String类型数据

Message msg = myHandler.obtainMessage();
//利用bundle对象来传值
Bundle b = new Bundle();
b.putInt(“ID”,12);
b.putString(“name”,“linqing”);
msg.setData(b);
msg.sendToTarget();


private Handler myHandler = new Handler() {
	public void handleMessage(android.os.Message msg) {
		//获取bundle对象的值
		Bundle b = msg.getData();
		Int id = b.getInt(“ID”);
		String name = b.getString(“name”);

		//TODO
	};
};

5.传递int

Message msgPos = new Message();
msgPos.what = 2;
msgPos.arg1 = pos;(pos为要传递的int 参数)
playHandler.sendMessage(msgPos);

private Handler playHandler= new Handler() {
	public void handleMessage(Message msg) {
		switch(msg.what){
		case 2:
			setPlayCamear(msg.arg1);//  msg.arg1为传递过来的int参数
			break;
		}
	};
};

6.String

Message msg = new Message();
msg.what = FinalConstants.QUERY_SUCCESS;
msg.obj = massNum;
vHandler.sendMessage(msg);

private Handler vHandler = new Handler(){
        @Override
        public void dispatchMessage(Message msg) {
            super.dispatchMessage(msg);
            switch(msg.what){
                case FinalConstants.QUERY_SUCCESS:    
                    String num = (String) msg.obj;
                    //TODO
                    break;
               
            }
        }
    };


====================

Timer timer = new Timer();
TimerTask task = new TimerTask(){
    public void run(){
        /TODO
    }
};

延迟10毫秒  每隔一秒执行一次
timer.schedule(task,10,1000);





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值