当前位置:网站首页>Service的两种启动方式与区别
Service的两种启动方式与区别
2022-08-11 06:44:00 【是小A】
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
边栏推荐
- 每日sql -用户两天留存率
- PIXHAWK飞控使用RTK
- Daily sql-employee bonus filtering and answer rate ranking first
- NTT的Another Me技术助力创造歌舞伎演员中村狮童的数字孪生体,将在 “Cho Kabuki 2022 Powered by NTT”舞台剧中首次亮相
- 2022-08-10 第四小组 修身课 学习笔记(every day)
- daily sql - user retention rate for two days
- Taobao API interface reference
- 【软件测试】(北京)字节跳动科技有限公司终面HR面试题
- js根据当天获取前几天的日期
- 每日sql -查询至少有5名下属的经理和选举
猜你喜欢
随机推荐
深度监督(中继监督)
JD.com product details API call example explanation
Unity底层是如何处理C#的
每日sql - 判断+聚合
Unity3D learning route?
拼多多API接口大全
公牛10-11德里克·罗斯最强赛季记录
下一代 无线局域网--强健性
伦敦银规则有哪些?
Redis源码:Redis源码怎么查看、Redis源码查看顺序、Redis外部数据结构到Redis内部数据结构查看源码顺序
ROS 话题通信理论模型
常见激活函数及其导数
每日sql -用户两天留存率
第一个C函数:如何实现板级初始化?
matplotlib
【Pytorch】nn.Linear,nn.Conv
Find the shops that have sold more than 1,000 yuan per day for more than 30 consecutive days in the past six months
Pinduoduo api interface application example
梅科尔工作室——BP神经网络
unable to extend table xxx by 1024 in tablespace xxxx