成人免费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.   } 

這里把相關的參數(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
相關推薦

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

移動技術半月刊

2016-10-21 13:03:18

androidhandlerlooper

2011-09-05 17:40:40

MTK定時器

2011-03-17 09:20:05

異常處理機制

2014-05-27 15:09:13

AndroidActivitysingleTask

2021-08-12 16:28:10

AndroidHandleLooper

2009-07-17 10:42:06

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

2023-06-15 14:09:00

解析器Servlet容器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品国产成人 | 91xxx在线观看 | 成人免费在线视频 | 亚洲码欧美码一区二区三区 | 在线看片网站 | 在线国产一区二区 | 欧美看片| 四虎永久免费黄色影片 | 狠狠操在线| 久久久久久网站 | 欧美a级成人淫片免费看 | 99久久中文字幕三级久久日本 | 国产一级片免费在线观看 | 欧洲色| av中文在线播放 | 日韩有码一区 | 欧美中文一区 | 欧美色综合一区二区三区 | 日韩欧美视频 | 污污的网站在线观看 | 国产一区视频在线 | 精品国产一区二区三区免费 | 国产区精品视频 | 在线婷婷| 国产91成人 | 在线观看国产 | 欧美精品video | 日韩色在线 | 国产精品久久久久久一区二区三区 | 国产乱码精品一区二区三区中文 | 午夜精品网站 | 欧美一级www片免费观看 | 罗宾被扒开腿做同人网站 | 国产在线中文字幕 | 99精品一区二区三区 | 天天操操操操操 | re久久| 精品美女在线观看视频在线观看 | 日韩一区二区三区四区五区六区 | 国产日屁 | www久久国产 |