【发布时间】:2020-10-07 15:58:49
【问题描述】:
这是我的方法:
public void setupBillingClient() { //connect to google play
billingClient = BillingClient.newBuilder(context)
.enablePendingPurchases()
.setListener(this)
.build();
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
//The BillingClient is setup successfully
loadAllSkus();
}
}
@Override
public void onBillingServiceDisconnected() {
//TODO: implement retry logic to handle lost connections to Google Play by calling startConnection() again
}
});
}
Google 说我应该“实现重试逻辑”,但没有说明如何。我想也许只是在onBillingServiceDisconnected() 内调用setupBillingClient(),但有些人说这会导致崩溃。另外我觉得如果它是那么简单,那么谷歌会告诉我们写这个而不是模糊的指令来实现重试逻辑。
【问题讨论】:
-
您可以使用
billingClient.startConnection(this);重试。 -
另外,看看这个只重试有限的次数。 medium.com/shuttl/…
-
我能找到的关于此事的唯一问题是这个,它说再次调用 startConnection() 会导致崩溃:stackoverflow.com/questions/63313049/…
-
没有解决办法? :(
-
我无法测试它。我的笔记本电脑模拟速度太慢,我已经在我唯一的安卓设备上测试了一次性购买。另外我不知道如何强制Android触发
onBillingServiceDisconnected()
标签: java android in-app-billing