【问题标题】:bindService(): do I have to protect against onServiceConnected() never comingbindService():我是否必须防止 onServiceConnected() 永远不会到来
【发布时间】:2012-02-03 15:55:38
【问题描述】:

Android 的 Context.bindService() 是异步的。即使它返回true,IBinder 也不会立即可用。你给它一个 ServiceConnection 对象,框架会回调它。至少应该是这样的。

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

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

【问题讨论】:

    标签: android android-service


    【解决方案1】:

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

    您应该能够相信系统,如果 bind 返回 true,并且没有引发安全异常,您应该在合理的时间内获取 onServiceConnected。

    【讨论】:

    • 应用内结算是远程的。它在 com.android.vendingAKA 市场应用程序中运行。
    猜你喜欢
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多