Android Service 解析(1)

服务Service需要在清单文件中配置
启动Service
startService
会调用 Service 服务 的生命周期
onCreate 这个生命周期 只会在Service 服务 第一次被启动的时候被调用
onStartCommand
停止服务
stopService




绑定服务
bindService 需要三个参数 
第一个参数 绑定服务的意图
第二个参数 ServiceConnecton对象
第三个参数 标志位  一般使用 BIND_AUTO_CREATE 表示建立关联以后自动创建 Service 
会调用生命周期的
onCreate 方法
解除绑定 
unbindService


在Service 服务 里面需要 定义一个内部类 
这个内部类继承 Binder 类      ---------   MyBinder
在这个内部类里面可以提供一个方法 用于 封装 Service 在后台执行 的 任务


在 Activity 里面使用到 一个 ServiceConnection 的匿名内部类
在这个类里面需要重写
俩个方法
onServiceConnected(ComponentName name, IBinder service)
在这个方法里面 通过 向下转型 得到一个 MyBinder 对象 调用 这个对象内部封装了 任务的 方法
onServiceDisconnected(ComponentName name)
这俩个方法,分别在服务 Service 与 Activity 之间建立关联 和 失去关联(由于异常而造成的断开连接)的时候 回调 如果是调用者主动通过 unBindService 方法 解除绑定
服务的时候 不会 回调这个方法




 
IBinder onBind(Intent intent) 这个 方法 是用于 Service 服务和 Activity 之间的通信 会返回一个 IBinder对象 返回 MyBinder 对象


关于 Service 服务的销毁 
如果只是使用 startService 来启动一个服务  只需要对应的 使用 stopService  停止服务就可以了
如果只是使用 bindService 来绑定一个服务  只需要对应的 使用 unbindService 解除服务就可以了


如果即使用了startService 又 使用了 bindService 来绑定服务 的时候
必须 使用 stopService 停止服务都饿同时 也要 使用 unbindService 来解除服务 才可以销毁服务


在 服务 销毁的回调方法 onDestory() 里面释放资源 

代码下载链接
点击打开链接



你可能感兴趣的:(android,service)