android为什么要绑定服务,任何人都可以解释android中未绑定和绑定服务之间的区别...

绑定和未绑定服务不是硬币的两面

服务可以是绑定的或未绑定的(已启动的)或两者兼而有之。这只是您为Service类的回调方法提供的实现问题。请参阅此处的所有四个回调方法

但是为了区别 ,你去吧

1.盯着服务

通过调用startService()方法启动未绑定服务。

通过调用bindService()方法启动绑定服务。

但是在两个调用系统内部调用onStartCommand()方法

2.服务的寿命

一旦启动了unboundService,它将无限运行直到

应用程序组件调用stopService()方法

服务本身调用SelfStop()方法。

只要服务绑定到客户端,BoundService就会运行。 如果没有与服务绑定的活动客户端,系统将销毁该服务

3. onBind()方法

在编写服务时,您必须覆盖onBind()。 如果

然后,未绑定的服务返回null

然后BoundService返回IBinder对象。

虽然未绑定的服务不返回Ibinder对象,但这并不意味着它不能与应用程序组件交互。 有很多方法可以做到这一点,例如BroadCastReceiver或ResultReceiver

与服务双向通信的一种方式

如果您希望与服务进行双向通信,则应将服务与活动绑定。

例如。 在暂停播放音乐,播放选项(Activtiy < - >服务)。

当您只希望服务更新您的活动(服​​务 – >活动)时,使用未绑定或已启动的服务。

例如:定时服务每秒更新一次活动。

另一个例子

您已经编写了一些处理位置更改的服务。

如果您想在移动10米时更新活动(使用未绑定服务)。

如果要在活动中单击某个按钮时查看当前位置的坐标。 (使用绑定服务)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值