幽沉谢世事,俯默窥唐虞。这篇文章主要讲述Android BundleHandler和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调试大法 自定义IDE默认签名文件
- android studio 报错-----R全部显示红色---- .9图片报错
- Android图表库MPAndroidChart——来点不一样的,正负堆叠条形图
- Android ExpandableListView的下拉刷新实现
- Android 使用PullToRefresh实现下拉刷新和上拉加载(ExpandableListView)
- Android自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示
- Android Fragment 生命周期
- ANDROID 自动生成动态表格for
- Android4.4 以太网和DHCP启动过程介绍