Android的Context.bindService()是异步的。即使它返回true
,IBinder也无法立即使用。您为它提供一个ServiceConnection对象,框架将其回调。这就是它应该如何,至少。
有没有人遇到过bindService会返回true
的情况,但onServiceConnected()调用永远不会出现?这是我必须考虑和保护的条件吗?
我将要使用的服务是应用内结算。
答案 0 :(得分:0)
如果绑定到的服务在与客户端(即本地服务)相同的进程中运行,那么如果bindService返回true,则没有实际的理由不调用onServiceConnected。如果服务在远程进程中运行,那么即使bindService返回true,也应该处理至少一个条件:如果远程进程崩溃,那么当系统重新启动服务时,您将获得onServiceDisconnected,然后再次onServiceConnected再次,这可能需要一段时间。
你应该能够信任系统,如果bind返回true,并且没有抛出安全异常,你应该在合理的时间内获得onServiceConnected。