android的AIDL项目在客户端同时用了startService和bindService

蚁人日记 2013-03-31 08:53:48

如图的代码,
各位,请问一下,在aidl项目中,客户端项目中开始用了startService来启动服务,它后面又执行了bindService来绑定服务,在android的AIDL项目中都只要通过bindService来绑定服务端的服务就可以了,为什么这里它要在开始时用startService来启动服务,请它这样做是为了什么?为什么它要总时用两个启动方式,这样做有什么好处?如果先用startService启动了服务端的服务(运行了onCreate方法),那么它在后面执行bindService方式时,它还会再一次运行onCreate方法吗?
...全文
340 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
b87936260 2013-05-28
  • 打赏
  • 举报
回复
onBindService绑定的服务生命周期等同于activity,想让service存活与后台,就必须startService
qinjuning 2013-04-01
  • 打赏
  • 举报
回复
你多看看这个Service功能就可以了啊,例如onStartCommand()有没有逻辑处理。如果没有的话,这个startService()可能是作者写错了吧。要辩证怀疑地学习。 有任何疑问,可以在Service里加Log看看。
蚁人日记 2013-04-01
  • 打赏
  • 举报
回复
引用 1 楼 congjianfei 的回复:
bind启动是绑定了一个通信信道,用start启动的时候这个信道没有绑定,这样就缺少了交互,而bind起到的作用是让服务和其他组件进行交互的。当你start启动后,走的是onstart方法,当你启动bind的时候,会运行onbind生命周期方法。不会oncreat两次
你说的这个我知道,但他为什么在前后两次启动?如果要绑定直接用bindService不就可以了吗?为什么之前还要startService启动一下?
千面而一言 2013-03-31
  • 打赏
  • 举报
回复
bind启动是绑定了一个通信信道,用start启动的时候这个信道没有绑定,这样就缺少了交互,而bind起到的作用是让服务和其他组件进行交互的。当你start启动后,走的是onstart方法,当你启动bind的时候,会运行onbind生命周期方法。不会oncreat两次

80,469

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧