Handler

 1、Handler的基本概念

        Handler是一条只能先进先出的消息队列,它的作用是实现消息队列的异步处理。

 

2、单线程Handler

       Handler与生成它的Activity同一线程;Handler没有调用Thread对象的start(),而是直接调用run()。

       Handler handler = new Handler();

       handler.post(myThread);

 

3、实现多线程Handler

         Looper:从队列中循环取出消息; HandlerThread包含Looper

         HandlerThread ht = new HandlerThread("handler_thread");
         ht.start();
         MyHandler myh = new MyHandler(handlerThread.getLooper());  // 将handler放入不同的线程中,实现异步

 

4、Handler中的数据传输

        发送消息(传递简单参数)

        Message msg = handler.obtainMessage();

        msg.arg1 = “test1”;

        msg.arg2 = “test2”;

        handler.sendMessage(msg);

        发送消息(Bundle: 类似map, 数据存储的工具;都是用String类型做键值类型,值的类型也有限;)

        Message msg = handler.obtainMessage();

        Bundle b = new Bundle();       

        b.putInt("test1", 345);       

        b.putString("test2", "123"); 

        msg.setData(b);

        handler.sendMessage(msg);

你可能感兴趣的:(Handler)