直播搭建中Android service两种启动方式的区别
直播搭建中的Android service服务不能自己运行,需要通过调用Context.start Service或者Context.bindService方法启动服务。两种方法都可以启动Service,但是它们的适用场合有所不同。使用startService方法启用服务,调用者与服务之间没有关联,即使调用者退出,服务仍然运行。使用bindService 方法启用服务,调用者与服务绑定在一起,调用者一旦退出,服务也就终止。
Context.startService启动
在服务未被创建之前,系统会先调用服务的onCreate方法,接着调用onStart 方法,如果调用startService方法前服务已被创建,多次调用startService方法并不会导致多次创建服务,但会导致多次调用onStart方法。采用startService方法启动的服务,只能调用Context.stopService方法结束服务,服务结束时会调用onDestroy方法。
Context.bindService方法启动
在服务未被创建时,系统会先调用服务的onCreate方法,接着调用onBind方法。这个时候调用者和服务绑定在一起,调用者退出,系统就会先调用服务的onUnbind方法,接着调用onDestory方法并不会导致多次创建服务及绑定和onBind方法并不会被多次调用。若果调用者希望与正在绑定的服务器解绑,可以通过调用unbindService的方法,调用该方法也会导致系统调用服务的onUnbind方法。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
没经过这些测试,你的微服务架构也敢进入生产环境?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 微服务架构是指将应用程序拆分为一系列较小、且直接用于解决具体问题的组件的实践方案。以此为基础,架构中的每一个组件都将通过各类常规协议(例如 HTTP 或者更轻量化的 TCP)相互通信。 说到这里,大家可能会好奇,对于微服务架构来说,测试真的很重要吗? 答案当然是重要!测试的重要性是体现在多方面的,不过比较重要的是以下几点: 节约金钱与时间 更安全 强化生产质量(减少 bug 与错误数量) 提升客户满意度 最重要的是,夜里能睡得更安稳 随时出 Bug、动不动就宕机的应用程序,没人会喜欢,而且往往这种应用程序的安全漏洞很多,如果黑客想从中窃取凭证或者抢劫资金,简直易如反掌。如果我们想要开发一款具备一定复杂性的应用程序,那么测试是一定需要的。 使用什么测试方法? 目前软件测试的种类比较多,大致可以分为功能测试和非功能测试两大类。其中功能测试类包括单元测试、集成测试、通烟测试、回归测试、健全测试、Beta/ 验收测试和端到端(e2e)测试,而非功能测试则包括了性能测试、负载测试、压力测试、安全测...
- 下一篇
MQTT协议实现Android中的消息收发
MQTT协议实现Android中的消息收发 前言MQTT(Message Queuing Telemetry Transport,消息队列遥测传输),基于发布/订阅范式的消息协议,是一种极其简单和轻量级的消息协议,专为受限设备和低带宽、高延迟或不可靠的网络设计。今天主要说明一下MQTT协议在Android中进行消息的收发应用,关于MQTT协议的基础内容请参考之前介绍的MQTT协议相关内容。 效果使用前先查看一下简单的效果图,MQTT相关的连接、订阅,发送及接收: 使用过程依赖添加implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.0'implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'实际使用中发现,如果仅用第一条依赖也是能够实现我们所需要的的消息收发功能的,其中MqttClient类实现了MQTT相关的连接、订阅、发送及接收功能,第二条依赖是基于MqttClient针对Android客户端进行封装了MqttAn...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Red5直播服务器,属于Java语言的直播服务器