有个关于Service的问题想问问

Hopelin=.= 2015-04-07 12:18:35
1.在Application里面bindService,来获取Service类onbind返回的服务端server,并保存在Application中,作为静态全局变量,初始值为null。
2.在MainActivity里面new了一个Fragment,在Fragment的onCreateView函数中,调用Application中的静态变量server来获取服务,这时说我server还是null。

我的问题就是:为什么我bindservice是在Application的onCreate里面的,运行到Fragment的onCreateView的时候为什么还没获取到Service的onbind返回的服务端呢?? 这种情况下有什么解决办法?我觉得令UI线程睡眠等待bindsevice确确实实拿到server不现实吧。重点还是像知道为什么会这么迟才拿到server回来。(ps:我的Service是本地服务)
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_26338009 2015-04-07
  • 打赏
  • 举报
回复
坐等大神出现
yexianghu 2015-04-07
  • 打赏
  • 举报
回复
引用 3 楼 lin810921141 的回复:
[quote=引用 2 楼 yexianghu 的回复:] 没有写代码实验过,但是service启动是异步的,你所说的情况很有可能发生。UI线程中去睡眠等待是绝对不可取的,建议加一个splash界面,等service绑定完成后再启动fragment
我代码本身也是有Splash界面的,毕竟除了service之外,还有数据库连接等要处理,所以有Splash界面的。但是Service的绑定还是慢于Fragment一步。我查资料,有的资料说本地服务不像远程服务,并不是开在一个新进程上,好像是依附在UI线程上?不知对不对了= = 还有其他解决办法么??[/quote] 既然有splash,可以等到service绑定成功后再启动Fragment吗? service都依附与ui线程,只是根据你设置不同依附与不同进程的ui线程而已,因此这个问题跟是否是本地服务关系不大
Hopelin=.= 2015-04-07
  • 打赏
  • 举报
回复
引用 2 楼 yexianghu 的回复:
没有写代码实验过,但是service启动是异步的,你所说的情况很有可能发生。UI线程中去睡眠等待是绝对不可取的,建议加一个splash界面,等service绑定完成后再启动fragment
我代码本身也是有Splash界面的,毕竟除了service之外,还有数据库连接等要处理,所以有Splash界面的。但是Service的绑定还是慢于Fragment一步。我查资料,有的资料说本地服务不像远程服务,并不是开在一个新进程上,好像是依附在UI线程上?不知对不对了= = 还有其他解决办法么??
yexianghu 2015-04-07
  • 打赏
  • 举报
回复
没有写代码实验过,但是service启动是异步的,你所说的情况很有可能发生。UI线程中去睡眠等待是绝对不可取的,建议加一个splash界面,等service绑定完成后再启动fragment

80,360

社区成员

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

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