我正面临着我的应用程序的一个奇怪问题。我有一个在后台运行的LocationService。我管理其生命周期的方法是:启动服务时bindService()和onBind()之间的延迟
- 在
onResume
,每一次活动都使用bindService(intent,serviceConnection, BIND_AUTO_CREATE)
喜欢在需要时该服务会自动创建。 - 在
onStop
,每一次活动都使用unbindService(serviceConnection)
- 这工作,因为开关的活动时,新
Activity
onResume
是老Activity
onStop
方法
我已经是这个问题之前调用,可以说我从一开始主屏幕上,我用一个包含片段的活动启动应用程序。函数调用的顺序如下
- 活动
onCreate
- >setContentView
这里叫 - 活动
onResume
- >这里bindService
被调用,并应创建Service
- 片段
onResume
- 服务
onBind
方法被称为
我的问题是为什么我的bindService
和onBind
调用之间还有其他东西?我有一种感觉,这与线程问题有关。
延迟是一个预期的行为,因为bindService()确实是一个异步调用,请参阅[这个答案](http://stackoverflow.com/questions/10802456/when-exactly-onserviceconnected-for-bounded-service - 将被称为/ 10807311#10807311)了解更多详情。 – yorkw 2013-04-08 03:07:22
谢谢,它并没有说它是在文档中的异步调用,这就是为什么我感到困惑。你想把它作为答案吗? – chopchop 2013-04-09 01:35:33
嘿,我认为我是不必要的冗长,但我没有说过同样的事情(我相信在发布约克的评论之前)。我不打算得到赏金,但如果你认为我的回答是错误的,请对此作出评论。 – Tom 2013-04-09 02:30:39