[android] 服务的生命周期(混合方式)
绑定服务:可以调用服务里面的方法,
如果调用者activity销毁了,服务也会跟着销毁
单独解除绑定的时候,服务也会被销毁
开启服务:不可以调用服务里面的方法
如果调用者activity退出了,服务还会存在
需求:既要保证长期运行,又要执行服务里面的方法
生命周期
单独调用:
startService() ==> onCreate()
stopService() ==> onDestroy()
或者
bindService() ==> onCreate() ==>onBind()
unbindService() ==> onUnbind() ==>onDestroy()
混合调用:
技巧:1.开启服务 2. 绑定服务
startService() ==> onCreate()
bindService() ==> onBind()
unBindService() ==> onUnBind()
在界面退出的时候解除绑定,在界面onDestroy()的时候调用,在这里面用trycatch包裹一下就不会报红色的错误了,保证方法调用完之后就解除绑定
调用unBindService(conn)方法,参数:ServiceConnection对象,前面绑定的时候创建的对象
服务只能被解绑一次
[android] 服务的生命周期(混合方式)的更多相关文章
- android: 服务的生命周期
9.4 服务的生命周期 之前章节我们学习过了活动以及碎片的生命周期.类似地,服务也有自己的生命周期, 前面我们使用到的 onCreate().onStartCommand().onBind()和 ...
- 我的Android进阶之旅------>Android服务的生命周期回调方法
先引用一段官网上的文字 ======================================================================================== ...
- Android四大组件之Service --- 服务的生命周期
一旦在项目的任何位置调用了Context的startService() 方法,相应的服务就会启动起来,并回调onStartCommand() 方法.如果这个服务之前还没有创建过,onCreate() ...
- [android] 采用服务录制电话&服务的生命周期
根据上一节代码里,加入一个录音功能,上传到服务器,就能实现一个录制器 当手机处于通话状态时,开启录音机 获取MediaRecorder对象,通过new出来 调用MediaRecorder对象的setA ...
- Android中服务的生命周期与两种方式的区别
服务的生命周期跟Activity的生命周期类似.但是生命周期甚至比你关注服务如何创建和销毁更重要,因为服务能够在用户不知情的情况下在后台运行. 服务的生命周期---从创建到销毁---可以被分为以下两个 ...
- Android内的生命周期整理
1. Android App的生命周期: 2. Application的生命周期: 3. Activity的生命周期: 3.1 Fragment的生命周期: 4. Service的生命周期:5. Br ...
- Android Activity的生命周期简单总结
Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...
- android开发之生命周期
android开发之生命周期 一:Activity的生命周期: 这几天了了解了安卓Activity的生命周期,对于生命周期有了大概的理解: 一个Activity的生命周期也就是Activity从生成到 ...
- Asp.Net Core中服务的生命周期选项区别和用法
在做一个小的Demo中,在一个界面上两次调用视图组件,并且在视图组件中都调用了数据库查询,结果发现,一直报错,将两个视图组件的调用分离,单独进行,却又是正常的,寻找一番,发现是配置依赖注入服务时,对于 ...
随机推荐
- VS code的疑惑之处
作为一个新手,我充满疑惑 eg:下载了git但无法使用匹配 然后在各位博主的详细解释下知道 VS code更新后的git.path被格式化了: so需要进行路径覆盖. 在这之后我的终端依旧出现问题 ...
- 【转】vim 的各种用法,很实用哦,都是本人是在工作中学习和总结的
原文地址https://www.cnblogs.com/lxwphp/p/7738356.html (一)初级个性化配置你的vim 1.vim是什么? vim是Vi IMproved,是编辑器Vi的一 ...
- Laravel 5.6: Specified key was too long error
Laravel 5.6: Specified key was too long error 在Laravel执行以下命令: php artisan migrate 这是由于Laravel5.6设置了数 ...
- 小程序如何获取code
小程序如何获取code <button open-type="getUserInfo" hover-class='none' bindgetuserinfo="ge ...
- 召回率,精确率,mAP如何计算
首先用训练好的模型得到所有测试样本的confidence score,每一类(如car)的confidence score保存到一个文件中(如comp1_cls_test_car.txt).假设 ...
- react-native热更新之CodePush详细介绍及使用方法
react-native热更新之CodePush详细介绍及使用方法 2018年03月04日 17:03:21 clf_programing 阅读数:7979 标签: react native热更新co ...
- Mac eos 环境搭建
最近EOS官网出了文档,说可以跑通一个独立测试的节点了.这周尝试自行搭建了一下,由于自己不完全做mac下的开发,且这玩意是C写的,所以make起来遇到不少坑,记录下来.附完整踩坑.填坑记录. 1. 搭 ...
- Java线程之 InterruptedException 异常
Java线程之 InterruptedException 异常 当一个方法后面声明可能会抛出InterruptedException 异常时,说明该方法是可能会花一点时间,但是可以取消的方法. 抛 ...
- [NewLife.XCode]数据模型文件
NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...
- Ansible--Ad-Hoc
什么是Ad-Hoc (这其实是一个概念性的名字,是相对于写Ansible playbook来说的.类似于在命令行敲入shell命令和写shell scripts两者之间的关系)... 如果我们敲入一些 ...