BillingClient - обновляет / делает недействительной родительскую активность после onPurchasesUpdated - PullRequest
0 голосов
/ 03 февраля 2020

Таким образом, я получил свой BillingClient в отдельном одноэлементном классе, чтобы использовать его во всем приложении, что хорошо работает.

public class BillingClientHelper implements PurchasesUpdatedListener, BillingClientStateListener {...}

Поскольку для запуска фактического процесса выставления счетов вам требуется родительское действие, я получил его, передав объект деятельности:

private void launchActualBillingFlow(Activity activity, SkuDetails skuDetails) {
    BillingFlowParams flowParams = BillingFlowParams.newBuilder()
            .setSkuDetails(skuDetails)
            .build();
    billingClient.launchBillingFlow(activity, flowParams);
}

, который также работает хорошо. Но теперь наступает момент, когда после совершения покупки я хотел бы обновить базовую родительскую активность, чтобы представить новое состояние пользователю. Но я больше не могу ссылаться на это действие, поскольку фактический результат выставления счета происходит асинхронно в onPurchasesUpdated. Поэтому у меня нет ручки для вызова чего-то вроде activity.recreate().

Как мне лучше всего это сделать? С некоторым интерфейсом обратного вызова в моей деятельности, который реализует биллинговый класс, а затем вызывает onPurchasesUpdated? Кажется, это не круто: /
Или есть какой-то способ сохранить кратковременную ссылку на активность, которая не приводит к утечке памяти?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...