将应用内计费与活动解耦



我能在Android应用内计费V3上找到的所有教程都假设你有一个单独的活动来处理与计费相关的一切。在我的情况下,有多个活动需要访问计费。我该如何最优雅地处理这样的事情?

我偶然发现了一个问题:当使用Google计费助手类时,您总是将当前活动作为参数。稍后会对该活动调用回调(例如onActivityResult)。但是,如果活动一直在变化呢?我必须一直关闭并重新初始化计费吗?

但是,如果活动一直在变化呢?我必须这样做吗一直关闭并重新初始化计费?

没有什么不好的。连接到服务非常快。最重要的是能够在活动再次启动时处理onActivityResult()回调。

我该如何最优雅地处理这样的事情?

我不确定你写的是哪种申请。如果这是一个游戏,那么很可能它由一个单独的活动组成,无论如何都没有问题。如果它是具有多个活动的其他类型的应用程序,那么在我看来,有一个单独的活动是一个好主意,用户可以看到所有的应用内产品(购买和购买)。这就像一个"内部商店"活动。此活动可以连接到计费服务。其他活动应该转发到"内部商店",用户可以在那里阅读更多关于应用内产品的信息并决定购买。我觉得这很方便。

另一种方法是在Fragment中实现计费逻辑,它可以在每个活动中重用。您只需要覆盖onActivityResult()并将结果转发到该片段。这就是我在应用程序中实现它的方式。

希望这能有所帮助。

跳出示例框思考一下。这不仅与你的问题有关,而且是一般性的。

我会使用通知系统,因为您需要1个发布者和许多侦听器(您的案例2)。一种最丑陋的方法是(但写得最快):

  1. 进行虚假活动(即使是隐形的,不管怎样)
  2. 复制粘贴在那里工作的示例代码
  3. 破解一些工作代码并添加监听器,这将参数作为您的实际活动
  4. 在需要时通知您的实例

如果得到帮助或喜欢,请投第五票:)

最新更新