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