当前位置:网站首页>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
边栏推荐
猜你喜欢
易观分析联合中小银行联盟发布海南数字经济指数,敬请期待!
Tidb二进制集群搭建
每日sql-员工奖金过滤和回答率排序第一
prometheus学习4Grafana监控mysql&blackbox了解
Attitude solution - gyroscope + Euler method
Implement general-purpose, high-performance sorting and quicksort optimizations
从何跟踪伦敦金最新行情走势?
MindManager2022全新正式免费思维导图更新
Taobao product details API interface
Daily sql-employee bonus filtering and answer rate ranking first
随机推荐
Tidb二进制集群搭建
SQL滑动窗口
Douyin API interface
进制转换间的那点事
【预约观看】Ambire 智能钱包 AMA 活动第四期即将举行
数仓开发知识总结
详述MIMIC 的ICU患者检测时间信息表(十六)
1688 product interface
Amazon API interface Daquan
Unity程序员如何提升自己的能力
Amazon Get AMAZON Product Details API Return Value Description
A used in the study of EEG ultra scanning analysis process
求过去半年内连续30天以上每天都有1000元以上成交的商铺
MindManager2022全新正式免费思维导图更新
STM32CUBEIDE(11)----输出PWM及修改PWM频率与占空比
Unity底层是如何处理C#的
2022-08-10 Group 4 Self-cultivation class study notes (every day)
Pytorch模型转ONNX模型
Douyin share password url API tool
Daily sql-employee bonus filtering and answer rate ranking first