Android|Android Service学习(一)
早在开始学习Android开始,四大组件就以学习了解了不少,可是总是对这些基础知识了解不够牢固,用的时候总是不知道如何下手,于是还是踏踏实实脚踏实地重新学习这些基础知识。
概述
Service是Android四大组件之一,主要是用来当作后台处理的工具,它与Activity不是同一个东西,所以当Activity结束时Service不受到任何的影响,该继续工作就继续工作。一个组件若是同Service进行绑定,则它们之间可以进行数据的交互,同时哪怕是不同的进程之间都可以进行进程交互(IPC)。
使用场景:网络请求
、音乐操控
、文件的I/O流操作
等等。
使用方法
Service的调用一共两种启用方式:startService、bindService。
startService方式
该方式独立在后台运行,需要自己调用销毁命令。
使用场景:上传
、下载
。
bindService方式
这个方式则是提供了一种client-service
的接口,可以与Service进行发送以及返回结果操作,设置了IPC是不同的进程
之间也可以进行通信,可以多个组件之间绑定Service,通过该方式创建的Service的销毁是在与它进行绑定的所有组件都解除绑定时自动进行。
注意:Service的确是在后台运行,但是这个后台依旧是在Service中的方法解析 onstartCommand:该方法的实现一般是在使用startService出现,重写该方法需要自行调用主线程
中,所以也会发生堵塞主线程的情况,所以说在我们使用Service的同时,也需要将一些耗时操作(网络通信等等)另开线程。
stopSelf
或者stopService
方法。onBind:这个函数一般在我们继承Service时就会自动生成,如果你不使用bind方式,那么就直接
return null
,如果你需要使用该方法,就需要返回一个IBinder
类,通过这个用来与Service进行通信。onCreate:这个方法在我们使用Activicy中见多不怪了,但是这里的这个方法只是
第一次
启动时调用,主要是用来初始化一些变量。onDestory:在销毁该Service时调用,比如在我们创建了一些thread、listeners、receivers等等,然后将其清理的方法写入其中。
提示:当我们创建Service时与需要在Manifest中注册,同时可以在android:exported属性中设置false,以防止其他程序启动。两种Service启动方式生命周期 (一)startService生命周期
文章图片
startService生命周期 (二)bindService生命周期
文章图片
bindService生命周期 【Android|Android Service学习(一)】下一篇:Android Service学习(二)
推荐阅读
- Android|Android 动画套路
- 机器学习|2020李宏毅机器学习笔记-Unsupervised Learning: Deep Auto-encoder
- 学+习=学习
- 深度学习|我的NVIDIA开发者之旅——Caffe教程(3)使用sklearn和caffe进行简单逻辑回归实践
- 机器学习|python—sklearn特征提取
- React-Native学习系列(四)-ListView&Fetch()
- 软考——信息系统项目管理师|信息系统项目管理师学习笔记2——信息化与信息系统2
- 股票学习之路20170817
- 算法学习笔记【day4】
- 乐此不疲的英语学习