BroadcastReceiver工作過程

2021-09-07 16:34:48 字數 1121 閱讀 6706

動態註冊過程:

contextimpl.registerreceiver-->

contextimpl.registerreceiverinternal-->

activitymanagernative.getdefault().registerreceiver-->

activitymanagerservice.registerreceiver-->

接著會把遠端的innerreceiver和intentfilter物件儲存起來

傳送和接收過程:

contextimpl.sendbroadcast-->

activitymanagernative.getdefault().boradcastintent-->

activitymanagerservice.broadcastintent-->

activitymanagerservice.broadcastintentlocked-->

broadcastqueue.schedulebroadcastslocked-->

broadcastqueue.processnextbroadcast-->

broadcastqueue.delivertoregisteredreceiverlocked-->

broadcastqueue.performreceivelocked-->

innerreceiver.performreceive-->

loadedapk.receiverdispatcher.performreceive-->

activitythread.h.post(args)-->

args.run-->

broadcastreceiver.onreceive

no1:

四大元件都是在應用安裝時由pms(packagemanagerservice)解析並註冊的。

no2:

從android3.1開始,處於停止狀態的應用同樣無法接收到開機廣播flag_include_stopped_packages

而在android3.1之前,處於停止狀態的應用是可以收到開機廣播的

DHCP工作過程

dhcp服務的工作過程 如果在區域網中部署了dhcp伺服器,並且客戶端設定為自動獲得ip位址。這樣當dhcp客戶端第一次登入網路的時候,也就是客戶端發現本機上沒有任何ip資料設定,它會向網路發出乙個dhcp discover封包。因為客戶端還不知道自己屬於哪乙個網路,所以封包的 位址會為 0.0.0...

FTP 工作過程

1 ftp伺服器執行ftpd守護程序,等待使用者的ftp請求。2 使用者執行ftp命令,請求ftp伺服器為其服務。例 ftp 202.119.2.197 3 ftpd守護程序收到使用者的ftp請求後,派生出子程序ftp與使用者程序ftp互動,建立檔案傳輸控制連線,使用tcp埠21。4 使用者輸入ft...

ping工作過程

dos 命令,一般用於檢測網路通與不通 也叫時延,其值越大,速度越慢 ping packet internet grope 網際網路包探索器,用於測試網路連線量的程式。ping 發 送乙個 icmp 回聲請求訊息給目的地並報告是否收到所希望的 icmp 回聲應答。它是用來檢查網路是否通暢或者網路連線...