Service的两种启动方式与区别

简介: 分享一下Service的启动知识

Service的启动方式:startService() 和 bindService()

startService()

public abstract void startService(Intent service)

参数

Service要启动的服务程序的名称


方法

该方法会调用 Service 中的 onCreate() 和 onStartCommand() 方法来启动一个后台 Service,当 Service 销毁时直接调用 onDestroy() 方法


bindService()

public abstract boolean bindService(Intent service,ServiceConnection conn,int flags)

参数

service 是定义要绑定的服务程序的名称


conn是当服务程序启动和停止时,负责接收信息的接口程序


flags是设置绑定的选项,可以是0、BIND_AUTO_ CREATE、BIND_DEBUG_UNBIND、BIND_NOT_FOREGROUND、BIND_ABOVE_ CLIENT、BIND_ ALLOW_OOM_MANAGEMENT 或者 BIND_WAIVE_PRIORITY


方法

该方法通过 bindService() 方法启动 Service,则其生命周期受其绑定对象控制。一个 Service 可以同时绑定到多个对象上,当没有任何对象绑定到 Service 上时,该 Service 会被系统销毁


两种启动方式的区别

1.  startService只是启动Service,启动它的组件(如Activity)和Service并没有关联,只有当Service调用stopSelf或者其他组件调用stopService服务才会终止


2.  bindService方法启动Service,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点


3.  bindService方法启动服务,其他组件可以通过回调获取Service的代理对象和Service交互,而这两方也进行了绑定,当启动方销毁时,Service也会自动进行unBind操作,当发现所有绑定都进行了unBind时才会销毁Service


目录
打赏
0
0
0
0
3
分享
相关文章
|
7月前
关于systemd自定义,一个service 启动多个实例
关于systemd自定义,一个service 启动多个实例
114 2
Service的启动过程
Service的启动过程
51 2
服务停止后,自启动的service怎么写
当服务停止后,你可以通过在特定目录中创建一个.service文件来实现自启动。下面是一个示例: 1. 打开终端或者SSH连接到CentOS服务器上。 2. 进入`/etc/systemd/system/`目录。这是存放系统服务的位置,你可以将你的自启动服务文件放在这里。 3. 使用文本编辑器(如vi或nano)创建一个新的.service文件,文件名可以是任意的以`.service`结尾。 ```bash sudo vi myservice.service ``` 在文件中添加以下内容: ``` [Unit] Description=My
144 0
深入剖析Android四大组件(二)——Service服务之启动与绑定(二)
深入剖析Android四大组件(二)——Service服务之启动与绑定(二)
300 1
深入剖析Android四大组件(二)——Service服务之启动与绑定(二)
深入剖析Android四大组件(二)——Service服务之启动与绑定(一)
深入剖析Android四大组件(二)——Service服务之启动与绑定(一)
301 0
深入剖析Android四大组件(二)——Service服务之启动与绑定(一)
Apache service monitor下无服务可供启动
Apache service monitor下无服务可供启动
259 0
Android Service重启恢复(Service进程重启)原理解析(二)
Android Service重启恢复(Service进程重启)原理解析(二)
1682 0
Android Service重启恢复(Service进程重启)原理解析(二)
Android Service重启恢复(Service进程重启)原理解析(一)
Android Service重启恢复(Service进程重启)原理解析(一)
1087 0
Android Service重启恢复(Service进程重启)原理解析(一)
Android源码分析--Service的启动和绑定
Android源码分析--Service的启动和绑定
330 0
Android源码分析--Service的启动和绑定
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等