android handler

  1. handler提供異步處理的功能,發送和接收不是同時進行的java

  2. handler是android操做系統的線程通信工具android

  3. 做用:(1)安排消息或runable 在主線程中某個地方執行(2)安排一個動做在另一個線程中執行異步

  4. 維護兩個隊列:(1)消息隊列:發送、接受、處理消息    (2)Runable隊列:啓動、結束、休眠線程工具

  5. 使用的步驟:(1)建立handler對象 (2)建立runable 和消息 (3)調用post或sendMessage方法將runable和消息添加到隊列。oop

一.關於runable隊列(android 線程異步處理機制  post()---------------)post

  1. handler維護一個線程隊列,當向隊列發送一個runable後,馬上返回,並不理會runable是否被執行        ui

    方法:spa

     1.mHandler.post(Runable) 直接加入到線程隊列操作系統

     2.mHandler. postDelayed(Runable,long); 延遲一段時間,將runable 加入隊列線程

     3.mHandler.postAtTime(Runable,long) 定時加入線程隊列

      4.mHandler.removeCallback (Runable) 

2、消息隊列   (anddroid 消息異步處理機制  sendMessage()  -------------- handlerMessage())                    

    1.初始化   Message msg = mHandler.obtainMessage();     消息對象

    2.加入數據 msg.setData(Bundle bundle)     Bundle對象

    3.取出數據 msg.getData()

     發送到消息隊列方法  

            1.mHandler.sendMessage(Message)

            2.msg.sendToTarget();

            3.mHandler.sendMessageDelayed(Message,long)

            4.mHandler.senMessageAtTime(Message,long)

     處理消息的的方法

 Hander mHandler = new Handler(){
        
        public void handleMessage(Message msg){
        }
 };

 3、handler的兩個做用

  1. 安排消息或runnable 在某個主線程中某個地方執行 

     

    1. Handler mHandler = new Handler();
      mHandler.post(new Runnable{});

 2.安排一個動做在另一個線程中執行

new Thread{
            public void run{
            mHandle.post(new Runnable);
            }
}

 4、Looper

       1.   Looper實際上就是消息隊列+消息循環

       2.,Handler能夠看作是Looper的接口,用來向指定的Looper發送消息以及定義處理方法。默認狀況下Handler會與其所在線程的Looper綁定

       方法:

              1.  Looper.prepare();啓用looper

                2.Looper.loop() 讓looper開始工做

                3.mHandler.getLooper().quit() 中止looper

   3.Handler異步的實現

      Handler是經過HandlerThread 使得子線程與主線程分屬不一樣線程的。實際上,HandlerThread 是一個特殊的線程,它是一個封裝好Looper的線程

      這樣,就實現了handler的異步處理機制,在調用handler.post()方法,經過打印線程ID能夠得知,子線程與主線程是分屬不一樣線程的

      

            

   參考文章  :

http://mobile.51cto.com/abased375243.htm                                                                                                                                                                                                                                                                                     

相關文章
相關標籤/搜索