Android Service小記

Service 是Android 的一種組件,跟線程無關。android

Service 分兩種啓動方式 startService()和bindService()spa

兩種都須要在Androidmanifest.xml配置線程

<service android:name="com.xx.xx"></service>

兩種Intent都可以使用 code

Intent intent= new Intent("com.itg.download");

或者xml

Intent intent= new Intent(context,service.class);

兩種啓動方式blog

生命週期生命週期

startService: 未建立:onCreate()->onStartCommand()->onStop()->onDestroy()進程

       已建立:onStartCommand()->onStop()->OnDestroy()rem

bindService:未建立:onCreate()->onBind()->onUnbind()->onDestroy()it

       已建立:onBind()->onUnbind()->onDestroy()

即:二者onCreate()方法只會執行一次。二者即便屢次被建立但只會有一個service實例。

      startService方式,一經建立,即便依賴的Activity被摧毀,依舊能夠不受影響的運行;

      而bindService方式,隨依賴的Activity銷燬而結束。

 

關於LocalService和RemoteService

解釋:localService即本地服務,生命週期依賴於主進程(UI進程)。remoteService,獨立服務,被建立於獨立進程,如需與UI交互,須要IPC。

使用 兩種啓動方式默認便是localService;

      RemoteService,需配置

1:<service android:name="com.xx.xx" process=":remote"></service>
或:
2:<service android:name="com.xx.xx" process=".remote"></service>
區別:1:本應用私有服務獨立進程。2:共享服務獨立進程

下面寫法錯誤,打包會出錯
<service android:name="com.xx.xx" process="remote"></service>
出錯:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED manifest 寫法畸形 即寫法不當。

remote是service名字後綴,不限制。

相關文章
相關標籤/搜索