什么是Service?
大家好!欢迎大家来到大菠萝的博客 接下来我们一起来了解一下 service
service是一个可以长时间在后台执行操作而且不适用用户界面的组件
这两个分为startService 和 bindService
startService 是什么:他是启动service的一种方式
bindService是什么:他是启动service的一种方式
我:emmm 那么他两的区别在哪里?
startService :
- 在其他组件调用startService后 服务处于启动状态
- 如何停止?
- 在service中使用stopService后程序停止 或者在其他组件中使用stopService方法使用
- service与启动他的组件的方式:
- 没有提供独立的通信方式 启动service后service就处于独立运行的状态
- service的生命周期 一旦启动 service就可以在后台无限期运行 即使启动service的组件已经被销毁 直到其被停止
接下来看看另外一种启动方式
bindService:
- 在其他组件调用bindService后 服务处于启动状态
- 如何停止?
- 和service截然不同 注意 bindservice 只要在当所有与service绑定的组件(我很少用所有的)都被销毁 或者都调用了onbindService方法后 service将停止运行
- service与启动他的之间组件的通讯方式:
- 可以利用ServiceConnection进行通信 组件可以与service发生交互 发送请求 获取结果 或者是利用IPC跨进程来进行这些操作
- 当所有与其绑定的组件都取消绑定后 (这里取消绑定有可能是被主键销毁 也有可能是调用了unbindService方法)service将停止
注意的是:
- 启动时的"其他组件"不包括brocast receiver,其无法直接启动或者绑定service
- startService和BindService并不冲突 同一个 service可能既有组件startService启动了他 又有组件与他进行了绑定
- 当同一个service 与其他组件同时存在这两种联系时 生命周期也会发生变化 而这时候必须从两种角度看service停止 才能停止