IT干货网

Android Service小记

itxm 2022年03月15日 编程设计 169 0

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


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

PopupWindow+ListView+OnItemClick点击无效