bindService():我是否必须防止onServiceConnected()永远不会到来

时间:2012-01-27 02:25:48

标签: android android-service

Android的Context.bindService()是异步的。即使它返回true,IBinder也无法立即使用。您为它提供一个ServiceConnection对象,框架将其回调。这就是它应该如何,至少。

有没有人遇到过bindService会返回true的情况,但onServiceConnected()调用永远不会出现?这是我必须考虑和保护的条件吗?

我将要使用的服务是应用内结算。

1 个答案:

答案 0 :(得分:0)

如果绑定到的服务在与客户端(即本地服务)相同的进程中运行,那么如果bindService返回true,则没有实际的理由不调用onServiceConnected。如果服务在远程进程中运行,那么即使bindService返回true,也应该处理至少一个条件:如果远程进程崩溃,那么当系统重新启动服务时,您将获得onServiceDisconnected,然后再次onServiceConnected再次,这可能需要一段时间。

你应该能够信任系统,如果bind返回true,并且没有抛出安全异常,你应该在合理的时间内获得onServiceConnected。