service

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();方法长期的和服务之间进行交互。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值