Android總結01 服務

2021-07-10 06:49:14 字數 1320 閱讀 3277

service共分為兩種:

1.無返回值的啟動服務startservice(),該服務不與前台產生任何關聯,只能通過stopself()或者stopservice()來關閉

2.有返回值的啟動服務bindservice(),改服務會在service啟動後返回給啟動器乙個返回值,然後可以通過返回的ibinder物件來進行通訊,當啟動器關閉時,其也跟著關閉(必須有介面嗎?)

生命週期方法

startservice(intent service)-->oncreate()-->onstartcommand(intent intent,int flags,int startid)(多次啟動,多次執行)->ondestroy()

startservice()方法,由於每乙個都是單例模式,所以每次啟動傳入的intent可以相同,也可以不同,每次啟動時,onstartcommand方法都會執行一次,onstartcommand方法裡面的第乙個引數intent就是startservice()裡面傳入的intent.

bindservice(intent service,serviceconnection conn,int flags)->oncreate()->onbind(intent intent)->ondestroy()

bindservice()方法,每次啟動時只能啟動一次,即每乙個activity都只能啟動一次(啟動不關閉的情況),多次bindservice()並不會重複執行.

bindservice()方法的第二個引數需要傳乙個serviceconnection的例項化物件過去,用來保證activity和service之間的聯絡,第二個引數可以為空(但是寫null時卻報了錯誤,不知道在具體什麼情況下才可以傳null),到了onbind()方法時,與startservice()方法一樣,intent都是啟動時候傳過來的service(),onbind()方法需要返回乙個ibinder物件,但不能新建乙個類實現ibinder介面,那樣返回的ibinder,系統不會將其送到serviceconnection中的onserviceconnected方法中,返回的應該為binder的子類物件.第二個activity實現bindservice,也會獲取同乙個binder的子類物件,但是並不會執行onbind方法,只會執行serviceconnection中的onserviceconnected方法,意思就是已經連線上了

目前服務可以在某些品牌手機清理時被殺死,已經在以前的文章列表中體現出來了

下面說一下onstartcommand的返回值,這個就是從別處照抄的

可以通過bindservice和startservice方法訪問同乙個service,但是其中乙個關閉了並不會導致service關閉,必須得兩者都被關閉後,service才會關閉

Android系統穩問題總結01

這篇做為穩定性分析的開篇,但我不知道下篇什麼時候寫。因為前幾天突然想到這些就記錄下來。我覺得這裡記錄的會比具體的分析方法更有用,分析方法總能在網上找到的。什麼是穩定性問題 分析android問題時,經常會遇到一些穩定性問題。什麼是穩定性問題呢,我歸結有以下特點,非必現問題,或沒有找到復現路徑的問題。...

專案總結 01

專案描述 wdm2.0對終端裝置的集中式管理軟體。其中ca主要負責解析和處理wdm server的指令。指令可以分為5類 1.軟體,系統以及bios更新 維護 2.系統reboot,shutdown,login logoff操作 維護 3.對終端裝置進行遠端profile設定 音量大小,網路等 負責...

問題總結01

對於平時遇到的一些小的問題,需要及時的記錄下來,以防重複遇到再次的耗時間去想。struct node int main 報錯 error no matching function for call to node node int int 原因其實很簡答,就是沒有注意。自定義的類或者結構體沒有寫帶引...