变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

東坡下載:內(nèi)容最豐富最安全的下載站!

首頁IT技術(shù)安卓教程 → Android四大組件介紹 service生命周期介紹

Android四大組件介紹 service生命周期介紹

相關(guān)文章發(fā)表評論 來源:本站整理時間:2017/10/17 11:40:53字體大小:A-A+

更多

作者:佚名點擊:34次評論:0次標(biāo)簽: AndroidStudio

在Android開發(fā)中,Android四大組件是非常重要的,那么這其中包括哪四大組件?而其中的service生命周期是怎樣的呢?一起來看看吧!

Android四大組件基本介紹

Android四大基本組件分別是Activity,Service服務(wù),Content Provider內(nèi)容提供者,BroadcastReceiver廣播接收器。

service生命周期介紹

Android下的服務(wù)是在后臺運行 也是沒有界面 可以理解成是沒有界面的Activity,Android系統(tǒng)會為每個

應(yīng)用程序創(chuàng)建一個進(jìn)程和線程(主線程),而開啟一個服務(wù)就會創(chuàng)建一個進(jìn)程,可以在后臺看到。

我們來分析一下進(jìn)程:

進(jìn)程按優(yōu)先級分5中:

1.Foreground process 前臺進(jìn)程,正在和用戶交互 相當(dāng)于Activity執(zhí)行了onResume方法這個進(jìn)程最不容易被系統(tǒng)殺死。         

2.Visible Process  可視化進(jìn)程,用戶可以看得見,但用戶不能進(jìn)行交互,相當(dāng)于Activity執(zhí)行了onPause()方法。

3.Service Process   服務(wù)進(jìn)程 , 當(dāng)進(jìn)程里面通過startService開啟一個服務(wù),這時候就屬于服務(wù)進(jìn)程。

4. Background Process   后臺進(jìn)程, 相當(dāng)于Activity執(zhí)行了onStop()方法。

5. Empty  Process   空進(jìn)程    空進(jìn)程不會維持任何運行的組件,空進(jìn)程最容易被殺死,有時候它沒有被立刻殺死的目的是為下一次打開應(yīng)用程序時提供打開的速度。

在系統(tǒng)運行內(nèi)存不足的情況下,會檢查正在正在運行的進(jìn)程,殺死優(yōu)先級低的進(jìn)程來騰出內(nèi)存。

我們開啟服務(wù)有兩種方式: StartService() 和 BindService().

starService 開啟一個服務(wù),會執(zhí)行onCreate()方法,和onStart()方法,如果服務(wù)已經(jīng)開啟,只會執(zhí)行onStart()方法。

服務(wù)開啟后,就會在后臺長期運行,可以在設(shè)置界面找到,我們可以在設(shè)置界面手動關(guān)閉它,服務(wù)就會停止運行。

startService開啟服務(wù)也叫做非綁定模式開啟服務(wù) ,生命周期  第一次執(zhí)行的方法有 onCreate().onstartCommand(),到service關(guān)閉的時候執(zhí)行onDestroy()方法。

bindService開啟服務(wù)也叫做綁定模式開啟服務(wù),生命周期 第一次執(zhí)行的方法有 onCreate(), onBind()方法,

銷毀的時候執(zhí)行onUnBind(),onDestroy()方法, bindService開啟服務(wù)有個特點,它在設(shè)置界面時找不到的,所以我們無法手動在設(shè)置界面銷毀它,

不過它的生命周期依附于Activity,當(dāng)Activity銷毀的時候,這個服務(wù)也就跟著銷毀。

上面兩種生命周期實在相對單純的模式下的情形,我們在開發(fā)的過程中還必須注意Service實例只會有一個,也就是說如果當(dāng)前要啟動的Service已經(jīng)存在了那么就不會再次創(chuàng)建該Service當(dāng)然也不會調(diào)用onCreate()方法;

一個Service可以被多個客戶進(jìn)行綁定,只有所有綁定對象都執(zhí)行了onBind()方法后該Service才會銷毀,不過如果有一個用戶執(zhí)行了onStart()方法,那么這個時候如果其他所有的bind客戶都執(zhí)行了unBind()。

該Service也不會銷毀,很多應(yīng)用都是用startService和bindService混合開啟服務(wù),比如音樂播放器,第三方支付等

這時我們可能會有一個疑問:既然有StartService開啟服務(wù),為什么還要用bindService開啟服務(wù)?

目的就是為了使用bindserivce調(diào)用服務(wù)里面的方法

這時就出現(xiàn)了解決進(jìn)程間的通信問題:IPC,

而使用IPC就需要使用   aidl.

aidl :Android inteface defation language Android接口定義語言

使用aidl語言的步驟 

[1] 有一個服務(wù) 服務(wù)里面有一個方法  這個方法在另外一個應(yīng)用里面調(diào)用   

[2]在服務(wù)的內(nèi)部定義一個中間人對象(IBinder的實例)

[3]在onbind方法里面把我們定義的中間人對象返回

[4]把你想暴露的方法都定義在接口里

[5]把定義的接口Iservice.java 文件變成aidl文件   注意aidl語言不認(rèn)識public

[6]系統(tǒng)會自動生產(chǎn)一個Iservice.java文件  生產(chǎn)一個類 stub 系統(tǒng)會報錯. 把我們定義的中間人對象直接繼承Stub

[7]想保證2個應(yīng)用程序使用的是同一個aidl文件 谷歌要求aidl文件所生成的包名要相同 

[8]獲取中間人對象方式不一樣  是通過stub類中的一個靜態(tài)方法獲取我們定義中間人對象

[9]通過獲取到的中間人對象,調(diào)用服務(wù)里面的方法,實現(xiàn)IPC通信。

兩種開啟服務(wù)的小Demo:

以上就是小編為大家?guī)淼脑敿?xì)介紹!更多相關(guān)資訊,敬請關(guān)注東坡下載

擴(kuò)展知識

相關(guān)評論

閱讀本文后您有什么感想? 已有 人給出評價!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過難過
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無聊無聊
熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
主站蜘蛛池模板: 免费成年人在线观看视频 | 男女真实有遮挡xx00动态图 | 亚洲欧美视频在线观看 | 伦理片中文 | 婷婷婷色 | 欧美91精品久久久久网免费 | 国产无套在线观看视频 | 黄色短视频免费看 | 狠狠色狠狠干 | 午夜爽爽爽男女免费观看影院 | 亚洲一区二区三区欧美 | 欧美性天天影院欧美狂野 | 大吊色 | 免费国产a国产片高清不卡 免费国产a | 国产一区二区三区亚洲欧美 | 一级毛片免费观看视频 | 国产欧美精品系列在线播放 | 国产国语高清在线视频二区 | 大吊色 | 你懂的视频在线观看 | 亚洲欧洲日产国码 最新 | 国产青青草| 免费精品录播大片黄满18周岁 | 欧美呦呦在线 | 在线永久免费观看黄网站 | 最近最新免费中文字幕高清 | 亚洲国产欧美日韩一区二区 | 黄色网络在线观看 | 丝袜网站在线观看 | 婷婷综合激情 | 可以免费看黄的网址 | 国产成人综合一区精品 | 天天碰天天操 | 3344在线看片 | 亚洲色图第四页 | 成在线人永久免费播放视频 | 日韩3页| 亚洲欧美日韩在线中文一 | 亚洲色图第四页 | 关婷哪一级毛片高清免费看 | 开心成人激情 |