handler相关

来源:互联网 发布:清华在线网络教育平台 编辑:程序博客网 时间:2024/06/03 14:45

1、延迟多少秒去执行

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

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

2

private static final int ROTATE_DONE = 100;rHandler.sendEmptyMessage(ROTATE_DONE);protected Handler rHandler = new Handler(){@Overridepublic void dispatchMessage(Message msg) {switch (msg.what) {case ROTATE_DONE://TODObreak;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) {//获取传递过来的ObjectSmartZoneBean 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;}};};

====================
Timer timer = new Timer();TimerTask task = new TimerTask(){    public void run(){        /TODO    }};延迟10毫秒  每隔一秒执行一次timer.schedule(task,10,1000);





原创粉丝点击