Service
Service是Android系统中的四大组 件之一,也是可执行的程序,有自己的生 命周期。创建、配置Service和创建、配 置Activity的过程相似。 与 Activity不同,它是不能与用户交互 的。它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。
有2种启动方式:
startService:
特点:
一旦服务开启跟调用 者(开启者)就没有任何 关系了。开启者退出 了,开启者挂了,服 务还在后台长期的运 行。开启者不能调用 服务里面的方法。
在程序没有停止Service或者Service自己没有停止的情况下,Service将一直在后台运行。不管 启动多少次,只需要执行一次stopService即可关闭服务。
使用步骤:
1.定义一个类继承Service
需重写其各种方法
2.在Manifest.xml文件中配置该Service //注册到Manifest.xml
3.使用Context的startService(Intent)方法启动该Service intent的2个差数分别为当前环境和自定义的服务类。
4.不再使用时,调用stopService(Intent)方法停止该服务
2种方法的生命周期回调函数:
Bindservice:
特点:
bind的方式开启服务 并绑定服务,调用者 挂了,服务也会跟着 挂掉。绑定者可以调 用服务里面的方法。
一个Service可以同时和多个客户绑定,当多个客户都解除绑定之后,系统才会销毁service 。
Context.bindService(Intent intent, ServiceConnection conn, int flags)
绑定Service需要三个参数:
intent:Intent对象,需要定义指向服务类(new intent
(this,MyService.class))。
conn:ServiceConnection接口对象,创建该对象要实现它的onServiceConnected()和 onServiceDisconnected()来判断连接成功或者是断开连接。
flags:创建Service模式,一共有以下三种模式:
➢ Service.BIND_AUTO_CREATE:指定绑定的时候自动创建Service,最常使用的模式
➢ Service.BIND_DEBUG_UNBIND:测试绑定的时候,进行调试所用
➢ Service.BIND_NOT_FOREGROUND:不在前台进行绑定
使用步骤 和startService差不多 主要就要多传入一个ServiceConnection对象
1.定义一个类继承Service
2.在Manifest.xml文件中配置该Service
3.使用Context的bindService(Intent, ServiceConnection, int)方法启动该Service
4.不再使用时,调用unbindService(ServiceConnection)方法停止该服务



