《Android攻略》客户端和Service交互

1)客户端实现android.content.ServiceConnection的一个子类,随着Service的启动和停止,为了获得Service的信息重载其中的抽象方法void onServiceConnected(ComponentName className,IBinder service)和

void onServiceDisconnected(ComponentName name)。当bindService(Intent,ServiceConnection,int)返回ture时,如果建立了到Service的连接,就会调用前一个方法;传递给该方法的IBinder参数与onBind(Intent)的返回值相同。如果Service连接丢失 ,就会调用后一个方法。

 连接丢失通常发生在提供Service的进程崩溃或被临时终止的情况下。只要ServiceConnection实例本身没有被删除,与Service的绑定就始终处于活跃状态,当Service再次运行时会调用onServiceConnected(ComponentName,IBinder)。

2)客户端将ServiceConnection子类对象传递给bindService(Intent,ServiceConnection,int)方法。

 客户端调用void unbindService(ServiceConnection conn)方法与Service断开连接。断开连接后,Service重启时,该组件也不会收到调用。如果没有其他绑定,该Service随时可以停止。

在Service可以停止Service之前,会调用服务的boolean onUnbind(Intent intent)生命周期回调方法,其中的Intent对象会传递给unbindService(ServiceConnection)。假设onUnbind没有返回ture,则销毁该服务。否则每次绑定到该Service时都调用void onRebind(Intent intent)生命周期回调方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值