日韩精品中文字幕一区二区-日韩精品中文字幕一区-日韩精品中文字幕视频-日韩精品在线一区二区三区-第一页在线-第一福利视频

東坡下載:內容最豐富最安全的下載站!

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

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

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

更多

作者:佚名點擊:34次評論:0次標簽: AndroidStudio

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

Android四大組件基本介紹

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

service生命周期介紹

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

應用程序創建一個進程和線程(主線程),而開啟一個服務就會創建一個進程,可以在后臺看到。

我們來分析一下進程:

進程按優先級分5中:

1.Foreground process 前臺進程,正在和用戶交互 相當于Activity執行了onResume方法這個進程最不容易被系統殺死。         

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

3.Service Process   服務進程 , 當進程里面通過startService開啟一個服務,這時候就屬于服務進程。

4. Background Process   后臺進程, 相當于Activity執行了onStop()方法。

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

在系統運行內存不足的情況下,會檢查正在正在運行的進程,殺死優先級低的進程來騰出內存。

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

starService 開啟一個服務,會執行onCreate()方法,和onStart()方法,如果服務已經開啟,只會執行onStart()方法。

服務開啟后,就會在后臺長期運行,可以在設置界面找到,我們可以在設置界面手動關閉它,服務就會停止運行。

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

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

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

不過它的生命周期依附于Activity,當Activity銷毀的時候,這個服務也就跟著銷毀。

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

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

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

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

目的就是為了使用bindserivce調用服務里面的方法

這時就出現了解決進程間的通信問題:IPC,

而使用IPC就需要使用   aidl.

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

使用aidl語言的步驟 

[1] 有一個服務 服務里面有一個方法  這個方法在另外一個應用里面調用   

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

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

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

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

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

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

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

[9]通過獲取到的中間人對象,調用服務里面的方法,實現IPC通信。

兩種開啟服務的小Demo:

以上就是小編為大家帶來的詳細介紹!更多相關資訊,敬請關注東坡下載

擴展知識

相關評論

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

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過難過
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無聊無聊
熱門評論
最新評論
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)

本類常用軟件

主站蜘蛛池模板: 天秤座是风象星座?| xiazai| 鲍鱼视频在线观看| 抓特务| 女同性视频| 台风电影| 爱来爱去微电视完整| 绫濑| 双修杨幂,刘亦菲小说| 特种部队全面反击| 无耻之徒阿曼达| bb88| 王李丹妮三级电影| 搜狐视频安装| 茅山道士在线观看| 热血高校 电影| 斯维特拜克之歌电影| 范海辛电影原声在线观看免费| 画魂缠身 电影| 八年级上册英语课文| 188549.神秘的电影| 斯科| 北京卫视今晚节目表| 甜蜜蜜演员表| 投诉法官最快最有效果电话| 方言的战争在线观看高清免费完整版 | 遥远的你我触不可及动漫| 战狼15电影在线观看| 野孩子美剧| 心经原文全文| 美娜个人资料简介| 田教授的28个保姆演员表| 钢琴键盘示意图| 山楂树下电视剧演员表| 满天星的电影都有哪些| 富贵不能淫翻译| 烟花女驼龙| 变成黑皮辣妹然后和朋友做| 恋爱不可抗力电视剧在线观看| 重温经典节目预告| 自拍性视频|