如何处理DeadObjectException?

时间:2014-12-19 11:24:34

标签: android in-app-purchase google-play-services

在申请应用购买价格时,我从某些设备收到DeadObjectException异常报告。当我在我的结算服务连接上调用getSkuDetails时会发生异常。

我没有找到关于此的文档特别清楚。

  

您呼叫的对象已经死亡,因为其托管过程已不复存在。

  1. 如果我认为由于某种原因Android已经终止了结算服务,我是否正确理解这一点?
  2. 为什么?
  3. 有没有办法阻止这种情况发生?
  4. 我应该阻止这种情况发生吗?
  5. 我该如何处理异常?
  6. 我有没有办法重现这个场景进行测试?
  7. 我有两种方法

    void bindToBillingService() {
        AndroidLauncher.getActivity().bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"),
                mServiceConn, Context.BIND_AUTO_CREATE);
    }
    
    public void unbindBillingService() {
        if (getBillingServiceConnection() != null) {
            AndroidLauncher.getActivity().unbindService(mServiceConn);
        }
    }
    

    我应该这样做吗?

        try {
            // Do something billing related
        } catch (DeadObjectException e) {
            unbindBillingService();
            bindToBillingService();
            // Wait for a connection and then try again
        }
    

0 个答案:

没有答案