自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android應用程序消息處理機制(Looper、Handler)分析(11)

移動開發(fā) Android
在queueOrSendMessage函數(shù)中,又進一步把上面?zhèn)鬟M來的參數(shù)封裝成一個Message對象msg,然后通過mH.sendMessage 函數(shù)把這個消息對象msg加入到應用程序的消息隊列中去。這里的mH是ActivityThread類的成員變量,它的類型為H,繼承于Handler 類。

在queueOrSendMessage函數(shù)中,又進一步把上面?zhèn)鬟M來的參數(shù)封裝成一個Message對象msg,然后通過mH.sendMessage 函數(shù)把這個消息對象msg加入到應用程序的消息隊列中去。

這里的mH是ActivityThread類的成員變量,它的類型為H,繼承于Handler 類。

這個H類就是通過其成員函數(shù)handleMessage函數(shù)來處理消息的了,后面我們分析消息的處理過程時會看到。

它定義在frameworks/base/core/java/android/app/ActivityThread.java文件中:

  1. [java] view plaincopypublic final class ActivityThread { 
  2. ...... 
  3. private final class H extends Handler { 
  4. ...... 
  5. public void handleMessage(Message msg) { 
  6. ...... 
  7. switch (msg.what) { 
  8. ...... 
  9. ...... 
  10. ...... 
  11. }

ActivityThread類的這個mH成員變量是什么時候創(chuàng)建的呢?我們前面在分析應用程序的消息循環(huán)時,說到當應用程序進程啟動之后,就會加載 ActivityThread類的main函數(shù)里面,在這個main函數(shù)里面,在通過Looper類進入消息循環(huán)之前,會在當前進程中創(chuàng)建一個 ActivityThread實例:

  1. [java] view plaincopypublic final class ActivityThread { 
  2. ...... 
  3. public static final void main(String[] args) { 
  4. ...... 
  5. ActivityThread thread = new ActivityThread(); 
  6. thread.attach(false); 
  7. ...... 
  8. 在創(chuàng)建這個實例的時候,就會同時創(chuàng)建其成員變量mH了: 
  9. [java] view plaincopypublic final class ActivityThread { 
  10. ...... 
  11. final H mH = new H(); 
  12. ...... 

前面說過,H類繼承于Handler類,因此,當創(chuàng)建這個H對象時,會調(diào)用Handler類的構(gòu)造函數(shù),這個函數(shù)定義在frameworks/base/core/java/android/os/Handler.java文件中:

  1. [java] view plaincopypublic class Handler { 
  2. ...... 
  3. public Handler() { 
  4. ...... 
  5. mLooper = Looper.myLooper(); 
  6. ...... 
  7. mQueue = mLooper.mQueue; 
  8. ...... 
  9. final MessageQueue mQueue; 
  10. final Looper mLooper; 
  11. ...... 

 

責任編輯:閆佳明 來源: bbs.9ria
相關推薦

2014-05-22 15:41:59

Android消息處理機制Looper

2014-05-22 15:38:27

Android消息處理機制Looper

2014-05-22 15:00:16

Android消息處理機制Looper

2014-05-22 15:04:00

Android消息處理機制Looper

2014-05-22 15:07:44

Android消息處理機制Looper

2014-05-22 14:57:28

Android消息處理機制Looper

2014-05-22 15:15:53

Android消息處理機制Looper

2014-05-22 15:18:25

Android消息處理機制Looper

2014-05-22 15:33:31

Android消息處理機制Looper

2014-05-22 15:45:58

Android消息處理機制Looper

2011-04-28 11:01:40

Android消息處理LooperHandler

2011-11-23 09:33:45

HandlerLooperMessage

2014-05-27 10:13:57

移動技術半月刊

2016-10-21 13:03:18

androidhandlerlooper

2011-09-05 17:40:40

MTK定時器

2011-03-17 09:20:05

異常處理機制

2021-08-12 16:28:10

AndroidHandleLooper

2014-05-27 15:11:20

AndroidActivitysingleTask

2023-03-08 08:54:59

SpringMVCJava

2023-06-15 14:09:00

解析器Servlet容器
點贊
收藏

51CTO技術棧公眾號