handler主要运用在异步消息的处理(发送消息与处理消息不是同时进行);
如果我们直接调用线程中的run方法实际上我们并没有真的启动另一个线程而是在当前线程中执行此函数;
Thread.currentThread():获取当前线程对象;
java中标准的实现线程,启动线程的方法:Thread thread=new Thread(r:线程名);r.start();
bundle 就是一个数据传输工具;
耗时时间比较长,不一定有结果等需要另起线程;
looper循环的从消息队列中取消息,处理消息;
handlerThread 本身提供了消息循环与处理的功能(实现了使用looper来处理次消息队列的功能,此类有android框架提供);
发送消息的另一种方法: Message msg=handler.obtainMessage(); msg.sendToTarget(); 注:该消息发送的目标对象为生称msg的对象的handler对象;
创建bundle对象并设置值: Bundle bundle=new Bundle(); bundle.putInt(“age”,20); bundle.putString("name","张三");
msg.setData( bundle):设置数据注:bundle是键值对类型的其Key为String,Value为基本数据类型;
取bundle的值:
Bundle bundle= msg.getData(); int n=bundle.getInt("age"); String s=bundle.getString(“name”); 注:键的值一定要相同;