
范例:定义用户的Service组件 MyServiceUtil.java

范例:定义布局管理器

配置Service
一个Service程序编写完成之后还需要在项目中的AndroidManifest.xml文件之中进行注册,在<application>节点下添加如下的代码: <service android:name=".MyServiceUtil" /> 。
绑定Service
当一个Service启动之后,如果没有出现意外以及明确的调用stopService()方法的话则将会一直驻留在手机的服务之中,如果现在希望被一个Activity启动的Service可以在Activity程序结束后自动结束,则可以将一个Activity和Service进行绑定,在Activity类中专门提供了一个用于绑定Service的bindService()方法,但是在此方法返回的是一个android.content.ServiceConnection接口的参数。
ServiceConnection接口定义的方法

IBinder接口
ServiceConnection接口主要的功能是当一个Activity程序与Service建立连接之后,可以通过ServiceConnection接口执行Service连接(或取消)连接的处理操作,在Activity连接到Service程序上之后,会触发Service类中的onBind()方法,在此方法中要返回一个android.os.IBinder接口的对象。
IBinder接口的常量和方法

范例:解决bug
如果现在没有服务与Activity进行绑定而又调用了解除绑定操作,则会出现错误,所以在解除绑定之前必须要增加一个判断,即:判断一个Activity是否和一个Service绑定在了一起,如果绑定在了一起才可以使用unbindService()方法解除绑定。一般的做法是定义一个标记性的操作接口,而后在Activity中判断此接口对象是否为null来决定是否绑定了Service,这样说比较抽象,下面通过一个实际的代码来观察,本程序为了方便,只提供了绑定服务与解除绑定两个操作。

