首页 > 代码库 > Android Bundle、Handler和Message类介绍
Android Bundle、Handler和Message类介绍
- Bundle是一个载体,可以存放基本数据类型、对象等内容,相当于一辆汽车,可以装载很多东西,然后运到需要的地方,例如:
Bundle mBundle=new Bundle(); mBundle.putString("name","zhaolinit"); mBundle.putInt("number",123456); mBundle.putBoolean("flag",false); //然后,放到Intent对象中 Intent mIntent=new Intent(); mIntent.putExtras(mBundle);
- Message:包含描述和任意数据对象的消息,用于发送给Handler
它的成员变量如下:
public final class Message implements Parcelable { public int what; public int arg1; public int arg2; public Object obj; ... }
其中what用于标识这条消息,也可以让接收者知道消息是关于什么的。arg1和arg2用于发送一些integer类型的值。obj用于传输任意类型的值。
- Handler:消息处理者,通过重写Handler的handleMessage()方法,在方法中处理接收到的不同消息,例如:
Handler mHandler=new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what) { case TestHandler.TEST:
progressValue += msg.arg1; Log.d("progressValue-------------->", progressValue+"");
break;
}
}
}
在其它地方,通过sendMessage()方法,发送消息,以供handleMessage()方法接受
class myThread implements Runnable { public void run() { while (!Thread.currentThread().isInterrupted()) { Message message = new Message(); message.what = TestHandler.TEST; TestHandler.this.myHandler.sendMessage(message); try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } }
通过子线程处理一些耗时的操作,然后把处理后的结果通过sendMessage()方法发送到UI主线程。让主线程的Handler进行UI组件的结果更新。
Android Bundle、Handler和Message类介绍
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。