【问题标题】:Android: How to dispose labHelper of Google Wallet after purchaseAndroid:购买后如何处理谷歌钱包的labHelper
【发布时间】:2015-12-21 07:18:17
【问题描述】:

我正在集成谷歌钱包并在购买开始时启动 labHelper。通常 labHelper 是在活动时启动 onCreate 和 dispose 在活动 onDestroy 时。因此,即使我们不使用钱包服务,labHelper 也会在活动 onCreate 时启动。

所以我试图在开始购买时启动 labHelper 并在 labhelperPurchase 完成侦听器中处理。购买后我得到了一个例外。但是那里也发生了汇款。

第一次购买后,当我尝试第二次购买时,它显示“TRANSACTION FAILED

LabHelper 初始化

 mHelper = new IabHelper(FrendyActivity.this, base64EncodedPublicKey);

    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
        public void onIabSetupFinished(IabResult result) {
            Log.d(TAG, "Setup finished.");
            // Have we been disposed of in the meantime? If so, quit.
            if (mHelper == null)
                return;

            if (!result.isSuccess()) {
                Log.d(TAG, "In-app Billing setup failed: " + result);
            } else {
                Log.d(TAG, "In-app Billing is set up OK");
            }
        }

    });

购买后这是处置代码

   mHelper.launchPurchaseFlow(FrendyActivity.this,
            SkuItem, code,
            mPurchaseFinishedListener, type);


     IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new                    IabHelper.OnIabPurchaseFinishedListener() {
    public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
  if (mHelper != null)
        mHelper.dispose();
    mHelper = null

dealWithPurchaseSuccess(result, purchase);
}

一次购买后,当我再次尝试购买产品时出现错误 labHelper 已经启动

labHelper购买后如何正确处置?

【问题讨论】:

  • 你能粘贴一些购买项目的代码吗..
  • 更新代码@virendrao
  • 你确定这是购买代码吗,因为我记得我们称之为 launchPurchaseFlow..
  • 更新了完整的流程@virendrao

标签: android android-pay


【解决方案1】:

简单的回答:您不应该在购买后丢弃 iabHelper。 API 不是这样设计的。

您甚至不应该尝试在除 onCreate 和 onDestroy 之外的方法中启动和停止 API。但是如果你真的想要它并且你选择这样做首先创建一个新的 iabhelper 实例,不要重用它。

但我建议你删除 onIabPurchaseFinished 中的 dispose 调用,只在 onDestroy 方法中调用它。

【讨论】:

  • 在 whatsapp 中,如果我们在设置中查看正在运行的服务,我们看不到“com.app.vendingbilling”服务正在运行。该服务仅在 whatsapp 购买时运行。但是在这里,即使没有购买,自动售货计费服务也在应用程序启动时运行。 @Rolfツ
  • 这可能是因为whatsapp中的购买过程只有在用户导航到购买活动时才开始。
猜你喜欢
  • 2013-06-13
  • 2014-02-27
  • 2013-12-15
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
相关资源
最近更新 更多