服务Service
定义
Service是Android系统的重要组件之一,和Activity、Conent Provider、BroadcastReceiver统称为Android的四大组件。service是不可见的,在后台运行的,没有界面的。service一般处理比较耗时以及长时间运行的操作。服务分为普通服务和绑定服务两种,服务经常在一个应用程序中取得重要的作用。
普通服务
- 定义一个服务类继承service。
- 在清单文件androidmanifest注册服务。
- 调用用startService()启动普通服务。
普通服务的生命周期
多次启动服务
多次启动并不会调用onCreate()方法,但是会执行多次onStartCommand()方法。
直接启动普通服务
启动的Activity无法与服务进行通信,无法调用服务中的任何方法。
这样启动的服务不会因为启动的Activity关闭而销毁,服务会一直运行在后台。
绑定服务
- 定义一个服务继承Service。
- 在清单文件androidmanifest注册服务。
- 定义ServiceConnection对象并且实现里面onServiceConnected()和onServiceDisconnected()的方法。
- 调用bindService()开启绑定服务。
绑定服务的生命周期
多次绑定服务
不会调用服务生命周期中任何方法。
多次解绑服务
第一次解除绑定服务,将会从Map集合中移除记录,然后停止服务。再次解除绑定服务,Map集合中无绑定记录,则抛出服务没有注册的异常。
服务方式 | 与服务的通讯 | 与启动Activity之间的关系 |
---|---|---|
startService | 无法与服务进行直接通讯 | 未销毁服务长期运行在后台 |
bindService | 通过对象能够调用服务中的方法 | 未解除绑定生命周期跟随开启者 |
扩展
1、如何使得开启者能够与服务进行通讯,并且长期运行在后台。
- startService开启服务
- bindService绑定服务
- 与服务之间通讯,调用服务的方法
- unBindService解除绑定
- stop停止服务
需要遵循上面的步骤才能实现,否则开启失败。