Service知識(shí)點(diǎn)整理

Service生命周期

Service生命周期

1惠奸、通過(guò)StartService啟動(dòng)Service

通過(guò)startService啟動(dòng)后,service會(huì)一直無(wú)限期運(yùn)行下去睛榄,只有外部調(diào)用了stopService()或stopSelf()方法時(shí)馅闽,該Service才會(huì)停止運(yùn)行并銷毀。
要?jiǎng)?chuàng)建一個(gè)這樣的Service耸采,你需要讓該類繼承Service類,然后重寫(xiě)以下方法:

  • onCreate()
    1.如果service沒(méi)被創(chuàng)建過(guò)工育,調(diào)用startService()后會(huì)執(zhí)行onCreate()回調(diào)虾宇;
    2.如果service已處于運(yùn)行中,調(diào)用startService()不會(huì)執(zhí)行onCreate()方法如绸。
    也就是說(shuō)嘱朽,onCreate()只會(huì)在第一次創(chuàng)建service時(shí)候調(diào)用,多次執(zhí)行startService()不會(huì)重復(fù)調(diào)用onCreate()怔接,此方法適合完成一些初始化工作搪泳。
  • onStartCommand()
    如果多次執(zhí)行了Context的startService()方法,那么Service的onStartCommand()方法也會(huì)相應(yīng)的多次調(diào)用扼脐。onStartCommand()方法很重要岸军,我們?cè)谠摲椒ㄖ懈鶕?jù)傳入的Intent參數(shù)進(jìn)行實(shí)際的操作奋刽,比如會(huì)在此處創(chuàng)建一個(gè)線程用于下載數(shù)據(jù)或播放音樂(lè)等。
  • onBind()
    Service中的onBind()方法是抽象方法艰赞,Service類本身就是抽象類佣谐,所以onBind()方法是必須重寫(xiě)的,即使我們用不到方妖。
  • onDestory()
    在銷毀的時(shí)候會(huì)執(zhí)行Service該方法狭魂。

2、通過(guò)bindService啟動(dòng)Service

bindService啟動(dòng)服務(wù)特點(diǎn):
1.bindService啟動(dòng)的服務(wù)和調(diào)用者之間是典型的client-server模式党觅。調(diào)用者是client雌澄,service則是server端。service只有一個(gè)仔役,但綁定到service上面的client可以有一個(gè)或很多個(gè)掷伙。這里所提到的client指的是組件,比如某個(gè)Activity又兵。
2.client可以通過(guò)IBinder接口獲取Service實(shí)例,從而實(shí)現(xiàn)在client端直接調(diào)用Service中的方法以實(shí)現(xiàn)靈活交互卒废,這在通過(guò)startService方法啟動(dòng)中是無(wú)法實(shí)現(xiàn)的沛厨。
3.bindService啟動(dòng)服務(wù)的生命周期與其綁定的client息息相關(guān)。當(dāng)client銷毀時(shí)摔认,client會(huì)自動(dòng)與Service解除綁定逆皮。當(dāng)然,client也可以明確調(diào)用Context的unbindService()方法與Service解除綁定参袱。當(dāng)沒(méi)有任何client與Service綁定時(shí)电谣,Service會(huì)自行銷毀。
摘自 http://www.reibang.com/p/4c798c91a613

3抹蚀、IntentService和Service區(qū)別

  • Service
    是長(zhǎng)期運(yùn)行在后臺(tái)的應(yīng)用程序組件剿牺。
    Service 不是一個(gè)單獨(dú)的進(jìn)程,它和應(yīng)用程序在同一個(gè)進(jìn)程中环壤,Service 也不是一個(gè)線程,它和線程沒(méi)有任何關(guān)系晒来,所以它不能直接處理耗時(shí)操作。如果直接把耗時(shí)操作放在 Service 的 onStartCommand() 中郑现,很容易引起 ANR .如果有耗時(shí)操作就必須開(kāi)啟一個(gè)單獨(dú)的線程來(lái)處理

  • IntentService
    IntentService 是繼承于 Service 并處理異步請(qǐng)求的一個(gè)類湃崩,在 IntentService 內(nèi)有一個(gè)工作線程來(lái)處理耗時(shí)操作,啟動(dòng) IntentService 的方式和啟動(dòng)傳統(tǒng) Service 一樣接箫,同時(shí)攒读,當(dāng)任務(wù)執(zhí)行完后,IntentService 會(huì)自動(dòng)停止辛友,而不需要我們?nèi)ナ謩?dòng)控制薄扁。另外,可以啟動(dòng) IntentService 多次,而每一個(gè)耗時(shí)操作會(huì)以工作隊(duì)列的方式在IntentService 的 onHandleIntent 回調(diào)方法中執(zhí)行泌辫,并且随夸,每次只會(huì)執(zhí)行一個(gè)工作線程,執(zhí)行完第一個(gè)再執(zhí)行第二個(gè)震放,以此類推宾毒。而且,所有請(qǐng)求都在一個(gè)單線程中殿遂,不會(huì)阻塞應(yīng)用程序的主線程(UI Thread)诈铛,同一時(shí)間只處理一個(gè)請(qǐng)求。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末墨礁,一起剝皮案震驚了整個(gè)濱河市幢竹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恩静,老刑警劉巖焕毫,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異驶乾,居然都是意外死亡邑飒,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)级乐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)疙咸,“玉大人,你說(shuō)我怎么就攤上這事风科∪雎郑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵贼穆,是天一觀的道長(zhǎng)题山。 經(jīng)常有香客問(wèn)我,道長(zhǎng)扮惦,這世上最難降的妖魔是什么臀蛛? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮崖蜜,結(jié)果婚禮上浊仆,老公的妹妹穿的比我還像新娘。我一直安慰自己豫领,他們只是感情好抡柿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著等恐,像睡著了一般洲劣。 火紅的嫁衣襯著肌膚如雪备蚓。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天囱稽,我揣著相機(jī)與錄音郊尝,去河邊找鬼。 笑死战惊,一個(gè)胖子當(dāng)著我的面吹牛流昏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吞获,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼况凉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了各拷?” 一聲冷哼從身側(cè)響起刁绒,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎烤黍,沒(méi)想到半個(gè)月后知市,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚊荣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年初狰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片互例。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖筝闹,靈堂內(nèi)的尸體忽然破棺而出媳叨,到底是詐尸還是另有隱情,我是刑警寧澤关顷,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布糊秆,位于F島的核電站,受9級(jí)特大地震影響议双,放射性物質(zhì)發(fā)生泄漏痘番。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一平痰、第九天 我趴在偏房一處隱蔽的房頂上張望汞舱。 院中可真熱鬧,春花似錦宗雇、人聲如沸昂芜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泌神。三九已至良漱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間欢际,已是汗流浹背母市。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留损趋,地道東北人患久。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像舶沿,于是被迫代替她去往敵國(guó)和親墙杯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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