service

来源:互联网 发布:地摊叫卖录音软件 编辑:程序博客网 时间:2024/05/22 14:00

Service中有一个唯一的抽象方法onBind();所以必须在在子类中实现,这个方法用来绑定活动和服务从而实现活动和服务之间的沟通,我们重写三个方法,分别是onCreate(),onStartCommand(),onDestory()。这三个方法分别在服务被创建,启动和销毁的时候别调用。
我们通过Intent来启动服务,Intent intent=new Intent(MainActivity.this,MyService.class);
startService(intent);
当服务被第一次创建的时候onCreate()方法被调用,同时onStartCommand()方法被调用,当再次调用startService()方法的时候只有onStartCommand()方法被调用;
我们使用stopService()方法停止服务。或者在serveice的任何地方调用stopSelf()方法都会使服务停止。
service和活动之间的绑定:
下面我们就要用到onBind()方法了,同样我们使用Intent来实现活动和服务之间的绑定,方法是bindService();
bindService();方法接受三个参数,第一个当然是intent,第二个是ServiceContnection的实例,第三个参数是一个标志位。
上面提到ServiceContnection,我们应该怎么去创建呢?我们在活动中创建一个匿名类具体方法是:
private ServiceContnection connection=new Serviceconnection()
{
//这个匿名类中有两个方法;
public void onServiceDisconnected()
{
}
public void onServiceconnected(CompoentName name,IBinder service)
{
//当活动和服务成功连接的时候这个方法被执行。
//这里的service是service类中onBind()方法中返回的Binder实例;
}
}
当bindServiece()方法被调用之后,会回调onBind();方法,然后获得onBind()方法中的IBinder实例,然后通过Serviceconnection匿名类中的onServiceconnect();方法长期的和服务之间进行交互。

0 0