Android Service小记

Service 是Android 的一种组件,跟线程无关。

Service 分两种启动方式 startService()和bindService()

两种都需要在Androidmanifest.xml配置

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

两种Intent均可以使用 

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

或者

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

两种启动方式

生命周期

startService: 未创建:onCreate()->onStartCommand()->onStop()->onDestroy()

       已创建:onStartCommand()->onStop()->OnDestroy()

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

       已创建: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名字后缀,不限制。

 

你可能感兴趣的:(Android Service小记)