91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android應用程序如何把消息加入到消息隊列中

發布時間:2021-12-18 16:40:07 來源:億速云 閱讀:234 作者:iii 欄目:移動開發

這篇文章主要介紹“Android應用程序如何把消息加入到消息隊列中”,在日常操作中,相信很多人在Android應用程序如何把消息加入到消息隊列中問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android應用程序如何把消息加入到消息隊列中”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

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

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

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

[java] view plaincopypublic final class ActivityThread { ...... private final class ApplicationThread extends ApplicationThreadNative { ...... // we use token to identify this activity without having to send the // activity itself back to the activity manager. (matters more with ipc) public final void scheduleLaunchActivity(Intent intent, IBinder token, int ident, ActivityInfo info, Bundle state, List pendingResults, List pendingNewIntents, boolean notResumed, boolean isForward) { ActivityClientRecord r = new ActivityClientRecord(); r.token = token; r.ident = ident; r.intent = intent; r.activityInfo = info; r.state = state; r.pendingResults = pendingResults; r.pendingIntents = pendingNewIntents; r.startsNotResumed = notResumed; r.isForward = isForward; queueOrSendMessage(H.LAUNCH_ACTIVITY, r); } ...... } ...... }

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

[java] view plaincopypublic final class ActivityThread { ...... private final class ApplicationThread extends ApplicationThreadNative { ...... // if the thread hasn't started yet, we don't have the handler, so just // save the messages until we're ready. private final void queueOrSendMessage(int what, Object obj) { queueOrSendMessage(what, obj, 0, 0); } ...... private final void queueOrSendMessage(int what, Object obj, int arg1, int g2) { synchronized (this) { ...... Message msg = Message.obtain(); msg.what = what; msg.obj = obj; msg.arg1 = arg1; msg.arg2 = arg2; mH.sendMessage(msg); } } ...... } ...... }

到此,關于“Android應用程序如何把消息加入到消息隊列中”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西乌| 伊金霍洛旗| 香港| 黎川县| 宁南县| 龙海市| 渑池县| 馆陶县| 苏尼特右旗| 双鸭山市| 扬中市| 太谷县| 孝感市| 浮山县| 耒阳市| 华阴市| 新竹市| 宁波市| 台江县| 大荔县| 边坝县| 霍林郭勒市| 靖江市| 方山县| 延庆县| 安图县| 盐山县| 波密县| 菏泽市| 平泉县| 犍为县| 吕梁市| 长寿区| 西平县| 沭阳县| 嘉禾县| 安多县| 怀宁县| 恩平市| 伊宁县| 双江|