初识Handler - 基本用法,只说怎么用,不看原理
2020-07-01 本文已影响0人
蒙多喝醉了
目录:
- 基本用法
- 传值处理
- 定时处理
本文只看用法,不说其他。
一、基本用法
1、定义Handler
android.os.Handler handler = new Handler() {
@Override
public void handleMessage(final Message msg) {
//这里接受并处理消息
}
};
2、传递消息,等待处理
//发送消息
handler.sendMessage(message);
handler.post(runnable);
二、传值多处理
1、定义,并写入处理事项
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 200:
//获取传过来的值
int delay = msg.getData().getInt("delay");
String dog = msg.getData().getString("dog");
//处理关于UI的事项
//。。。
break;
default:
break;
}
};
};
2、传值
Message message = new Message();
message.what = 200;
//传值,可以传入不同类型,这里只简单示例
Bundle bundle = new Bundle();
bundle.putInt("delay", 123);
bundle.putString("dog","dog");
message.setData(bundle);
mHandler.sendMessage(message);
三、定时处理
1、用法1:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//执行代码
}
}, 10000);
2、用法2:
//创建一个Handler对象
Handler mHandler = new Handler();
//然后创建一个Runnable对象
Runnable runnable = new Runnable(){
@Override
public void run() {
mHandler.postDelayed(this, 2000);
//两秒后你要做的事情,在这里实现:
//你要吃饭???
//你要干啥
}
};
//在你需要的地方,使用PostDelayed方法,两秒后将调用此Runnable对象。
mHandler.postDelayed(runnable, 2000);
//关闭此定时器
mHandler.removeCallbacks(runnable);