成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

移動開發(fā) Android
應用程序的主線程準備就好消息隊列并且進入到消息循環(huán)后,其它地方就可以往這個消息隊列中發(fā)送消息了。我們繼續(xù)以文章開始介紹的Android應用程序啟動過程源代碼分析一文中的應用程序啟動過為例,說明應用程序是如何把消息加入到應用程序的消息隊列中去的。

應用程序的主線程準備就好消息隊列并且進入到消息循環(huán)后,其它地方就可以往這個消息隊列中發(fā)送消息了。

我們繼續(xù)以文章開始介紹的Android應用程序啟動過程源代碼分析一文中的應用程序啟動過為例,說明應用程序是如何把消息加入到應用程序的消息隊列中去的。

在Android應用程序啟動過程源代碼分析這篇文章的Step 30中,ActivityManagerService通過調(diào)用ApplicationThread類的scheduleLaunchActivity函 數(shù)通知應用程序。

它可以加載應用程序的默認Activity了,這個函數(shù)定義在frameworks/base/core/java/android /app/ActivityThread.java文件中:

  1.   [java] view plaincopypublic final class ActivityThread { 
  2.   ...... 
  3.   private final class ApplicationThread extends ApplicationThreadNative { 
  4.   ...... 
  5.   // we use token to identify this activity without having to send the 
  6.   // activity itself back to the activity manager. (matters more with 
  7. ipc) 
  8.   public final void scheduleLaunchActivity(Intent intent, IBinder token, int 
  9. ident, 
  10.   ActivityInfo info, Bundle state, List pendingResults, 
  11.   List pendingNewIntents, boolean notResumed, boolean isForward) 
  12.   ActivityClientRecord r = new ActivityClientRecord(); 
  13.   r.token = token; 
  14.   r.ident = ident; 
  15.   r.intent = intent; 
  16.   r.activityInfo = info; 
  17.   r.state = state; 
  18.   r.pendingResults = pendingResults; 
  19.   r.pendingIntents = pendingNewIntents; 
  20.   r.startsNotResumed = notResumed; 
  21.   r.isForward = isForward; 
  22.   queueOrSendMessage(H.LAUNCH_ACTIVITY, r); 
  23.   } 
  24.   ...... 
  25.   } 
  26.   ...... 
  27.   } 

這里把相關(guān)的參數(shù)都封裝成一個ActivityClientRecord對象r,然后調(diào)用queueOrSendMessage函數(shù)來往應用程序的消息隊 列中加入一個新的消息(H.LAUNCH_ACTIVITY),這個函數(shù)定義在frameworks/base/core/java/android /app/ActivityThread.java文件中:

  1. [java] view plaincopypublic final class ActivityThread { 
  2. ...... 
  3. private final class ApplicationThread extends ApplicationThreadNative { 
  4. ...... 
  5. // if the thread hasn't started yet, we don't have the handler, so just 
  6. // save the messages until we're ready. 
  7. private final void queueOrSendMessage(int what, Object obj) { 
  8. queueOrSendMessage(what, obj, 00); 
  9. ...... 
  10. private final void queueOrSendMessage(int what, Object obj, int arg1, int 
  11. g2) { 
  12. synchronized (this) { 
  13. ...... 
  14. Message msg = Message.obtain(); 
  15. msg.what = what; 
  16. msg.obj = obj; 
  17. msg.arg1 = arg1; 
  18. msg.arg2 = arg2; 
  19. mH.sendMessage(msg); 
  20. ...... 
  21. ...... 

 

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

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 15:38:27

Android消息處理機制Looper

2014-05-22 15:48:50

Android消息處理機制Looper

2014-05-22 15:41:59

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

2011-04-28 11:01:40

Android消息處理LooperHandler

2011-11-23 09:33:45

HandlerLooperMessage

2014-05-27 10:13:57

移動技術(shù)半月刊

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:09:13

AndroidActivitysingleTask

2023-03-08 08:54:59

SpringMVCJava

2023-06-15 14:09:00

解析器Servlet容器
點贊
收藏

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

主站蜘蛛池模板: 91精品国产综合久久久久久 | 中文字幕亚洲欧美日韩在线不卡 | 国产成人免费在线 | 欧美日本韩国一区二区 | 91国内外精品自在线播放 | 国内自拍视频在线观看 | 91视频进入 | 欧美日韩在线精品 | 久久国产精品-国产精品 | 污书屋 | 三级黄色片在线播放 | www精品美女久久久tv | 欧美日韩成人网 | 亚洲欧洲一区 | 日韩一区二区三区在线 | 美女黄频 | 成人欧美一区二区三区在线观看 | 国产日韩久久 | 欧美成人h版在线观看 | 亚洲一区二区三区免费在线观看 | 国产一级免费视频 | 亚洲精品福利视频 | a在线免费观看视频 | 国产探花在线观看视频 | 91动漫在线观看 | 日韩一区二区在线免费观看 | 日韩 欧美 二区 | 日韩三级一区 | 国产午夜久久久 | 亚洲综合国产 | 波多野结衣一区二区三区在线观看 | 天天久| 久热国产在线 | 亚洲444eee在线观看 | 免费观看成人性生生活片 | 精品免费国产一区二区三区四区 | 女人天堂av | 亚州av| 日韩精品中文字幕在线 | 中文字幕亚洲精品 | 爱爱视频网 |