四大組件工作原理--學習筆記

四大組件除了BroadCastReceiver都必須在清單文件中注冊

調(diào)用方式上 除了ContentProvider不需要intent外其他都需要在intent

Activity ? ?展示型組件

啟動方式 intent ?顯示和隱式 ?顯示意圖明確指向一個 隱式可以一個或多個activity組件舌剂;

Service 計算型組件 ?后臺執(zhí)行

兩種狀態(tài) 綁定和啟動 兩種狀態(tài)可以共存刺桃;

啟動狀態(tài)主要用來執(zhí)行后臺計算

綁定狀態(tài)主要用來其他組件和service的交互刽严;?

onCreate onStartCommand onDestroy方法;

onCreate方法只會調(diào)用一次;

遠程Service ?清單文件中的process屬性 ?設置為remote色鸳;

BroadCastReceiver ?消息型組件 ?沒有停止概念

注冊方式 ?靜態(tài)注冊和動態(tài)注冊兩種

BroadcastReceiver的工作過程包括廣播注冊過程、廣播發(fā)送和接收過程见转。

靜態(tài)注冊無論程序是否啟動都會接受廣播而動態(tài)注冊的廣播只有在當程序運行的時候才會接收到廣播信息

靜態(tài)注冊是由PackageManagerService(PMS)在應用安裝的時候完成整個注冊過程的命雀,

除廣播以外,其他三大組件也都是在應用安裝時由PMS解析并注冊的池户。

廣播的發(fā)送有幾種類型:普通廣播咏雌、有序廣播和粘性廣播,有序廣播和粘性廣播與普通廣播相比具有不同的特性校焦,但是發(fā)送和接收過程是類似的赊抖。

FLAG_INCLUDE_STOPPED_PACKAGES:廣播會發(fā)送給已經(jīng)停止的應用,F(xiàn)LAG_EXCLUDE_STOPPED_PACKAGES廣播不會發(fā)送給已經(jīng)停止的應用

從Android 3.1開始寨典,處于停止狀態(tài)的應用無法接受到開機廣播氛雪。

ContentProvider ?數(shù)據(jù)共享型組件?
內(nèi)部維持著一個數(shù)據(jù)型集合可以通過數(shù)據(jù)庫來實現(xiàn) 有增刪改查四種操作;不需要手動停止耸成;

當ContentProvider所在的進程啟動時报亩,會同時被啟動并被發(fā)布到AMS中,需要注意的是井氢,這個時候它的onCreate要先去Application的onCreate執(zhí)行弦追,這在四大組件中是一個少有的現(xiàn)象。
用啟動的入口為ActivityThread的 main方法花竞,main方法會創(chuàng)建ActivityThread實例并創(chuàng)建主線程消息隊列劲件。
attach方法中遠程調(diào)用AMS的attachApplication方法,并提供ApplicationThread用于和AMS的通信约急。
attachApplication方法會通過bindApplication方法和H來調(diào)回ActivityThread的handleBindApplication零远,這個方法會先創(chuàng)建Application,再加載ContentProvider厌蔽,然后才會回調(diào)Application的onCreate方法牵辣。
ContentProvider的multiprocess屬性決定了ContentProvider是否是單例(false時),一般都用單例奴饮。
ontentResolver的具體類是ApplicationContentResolver纬向,當ContentProvider所在進程未啟動時,第一次訪問它會觸發(fā)ContentProvider的創(chuàng)建以及進程啟動戴卜。

BroadCastReceiver動態(tài)注冊過程
BroadCastReceiver發(fā)送和接受



contentProvider

圖片來源與網(wǎng)絡

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罢猪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子叉瘩,更是在濱河造成了極大的恐慌,老刑警劉巖粘捎,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薇缅,死亡現(xiàn)場離奇詭異危彩,居然都是意外死亡,警方通過查閱死者的電腦和手機泳桦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門汤徽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灸撰,你說我怎么就攤上這事谒府。” “怎么了浮毯?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵完疫,是天一觀的道長。 經(jīng)常有香客問我债蓝,道長壳鹤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任饰迹,我火速辦了婚禮芳誓,結果婚禮上,老公的妹妹穿的比我還像新娘啊鸭。我一直安慰自己锹淌,他們只是感情好,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布赠制。 她就那樣靜靜地躺著赂摆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪憎妙。 梳的紋絲不亂的頭發(fā)上库正,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音厘唾,去河邊找鬼褥符。 笑死,一個胖子當著我的面吹牛抚垃,可吹牛的內(nèi)容都是我干的喷楣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼鹤树,長吁一口氣:“原來是場噩夢啊……” “哼铣焊!你這毒婦竟也來了?” 一聲冷哼從身側響起罕伯,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤曲伊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坟募,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡岛蚤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了懈糯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涤妒。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赚哗,靈堂內(nèi)的尸體忽然破棺而出她紫,到底是詐尸還是另有隱情,我是刑警寧澤屿储,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布贿讹,位于F島的核電站,受9級特大地震影響扩所,放射性物質發(fā)生泄漏围详。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一祖屏、第九天 我趴在偏房一處隱蔽的房頂上張望助赞。 院中可真熱鬧,春花似錦袁勺、人聲如沸雹食。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽群叶。三九已至,卻和暖如春钝荡,著一層夾襖步出監(jiān)牢的瞬間街立,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工埠通, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赎离,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓端辱,卻偏偏與公主長得像梁剔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子舞蔽,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容