gpt4 book ai didi

Android 应用内结算取消付款,应用未激活

转载 作者:行者123 更新时间:2023-11-30 04:01:18 25 4
gpt4 key购买 nike

当应用程序未运行时,我无法弄清楚应用程序内计费过程应该如何处理广播事件。我有一个托管产品设置,据我所知,运行良好。使用测试帐户,我可以购买我发布的组件,我的测试应用程序会处理它,并保持其状态。然后我通过我的商家帐户取消了这个订单,应用程序再次收到事件并删除了该项目。

当应用程序处于 Activity 状态时而不是取消订单时会出现问题。我退出了它(不是用主页,有多个后退按钮)。如果我现在取消该项目,我的“设备”会收到“购买失败”的通知,但当我启动我的应用程序时似乎什么也没有发生,因此该项目的状态仍然是已购买。

我不确定计费服务是否仍在运行。鉴于 documentation说我的应用程序必须发回 CONFIRM_NOTIFICATIONS 或它一直发送它我只能假设它是。但是,如果应用程序处于 Activity 状态,为什么它无法与我的数据库交互并删除项目,就像它正确执行的那样?

我希望这些是清楚的,如果之前已经讨论过,我很抱歉,我在搜索中找不到任何东西。

最佳答案

很抱歉回答我自己的问题,但希望我的发现能帮助其他和我一样困惑的人。

我的问题是认为示例中提供的 Dungeons.java 类具有修改所需的所有代码。示例设计将其数据库实现嵌套在观察者类中,该观察者类在用户与商店交互时处于 Activity 状态。它在我的问题中概述了它为我创建的问题,如果在该观察者未注册或应用程序未运行时交易被取消,会发生什么情况。

通过反复试验,我的解决方案是将数据库交互从观察者中取出并将其放入

private void purchaseStateChanged(int startId, String signedData, String signature) {

BillingService 类。

放在这里,当我的广播接收器触发时,我会执行取消并相应地更新我的数据库,而不管我的应用程序是否启动更不用说我的观察者注册了。

关于Android 应用内结算取消付款,应用未激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12464960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com