偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

這個(gè)H類就是通過(guò)其成員函數(shù)handleMessage函數(shù)來(lái)處理消息的了,后面我們分析消息的處理過(guò)程時(shí)會(huì)看到。

它定義在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類的這個(gè)mH成員變量是什么時(shí)候創(chuàng)建的呢?我們前面在分析應(yīng)用程序的消息循環(huán)時(shí),說(shuō)到當(dāng)應(yīng)用程序進(jìn)程啟動(dòng)之后,就會(huì)加載 ActivityThread類的main函數(shù)里面,在這個(gè)main函數(shù)里面,在通過(guò)Looper類進(jìn)入消息循環(huán)之前,會(huì)在當(dāng)前進(jìn)程中創(chuàng)建一個(gè) ActivityThread實(shí)例:

  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)建這個(gè)實(shí)例的時(shí)候,就會(huì)同時(shí)創(chuàng)建其成員變量mH了: 
  9. [java] view plaincopypublic final class ActivityThread { 
  10. ...... 
  11. final H mH = new H(); 
  12. ...... 

前面說(shuō)過(guò),H類繼承于Handler類,因此,當(dāng)創(chuàng)建這個(gè)H對(duì)象時(shí),會(huì)調(diào)用Handler類的構(gòu)造函數(shù),這個(gè)函數(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. ...... 

 

責(zé)任編輯:閆佳明 來(lái)源: bbs.9ria
相關(guān)推薦

2014-05-22 15:00:16

Android消息處理機(jī)制Looper

2014-05-22 15:04:00

Android消息處理機(jī)制Looper

2014-05-22 15:07:44

Android消息處理機(jī)制Looper

2014-05-22 15:38:27

Android消息處理機(jī)制Looper

2014-05-22 15:41:59

Android消息處理機(jī)制Looper

2014-05-22 14:57:28

Android消息處理機(jī)制Looper

2014-05-22 15:15:53

Android消息處理機(jī)制Looper

2014-05-22 15:18:25

Android消息處理機(jī)制Looper

2014-05-22 15:33:31

Android消息處理機(jī)制Looper

2014-05-22 15:45:58

Android消息處理機(jī)制Looper

2011-04-28 11:01:40

Android消息處理LooperHandler

2011-11-23 09:33:45

HandlerLooperMessage

2014-05-27 10:13:57

移動(dòng)技術(shù)半月刊

2016-10-21 13:03:18

androidhandlerlooper

2011-09-05 17:40:40

MTK定時(shí)器

2011-03-17 09:20:05

異常處理機(jī)制

2014-05-27 15:11:20

AndroidActivitysingleTask

2021-08-12 16:28:10

AndroidHandleLooper

2009-07-17 10:42:06

Swing應(yīng)用程序處理函數(shù)

2023-06-15 14:09:00

解析器Servlet容器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)