2013-04-20 31 views
0

我想弄清楚如何在包含一打活动的应用中实现应用内购买。主要问题是在哪里放IABHelper m_helper;对象?在单一活动应用程序(如示例“android-sdk \ extras \ google \ play_billing \ samples \ TrivialDrive \ src \ com \ example \ android \ trivialdrivesample”)中,一切都很简单。android应用内购买API 3

但我需要与几个Activities内的计费系统进行交互。在他们每个人中定义一个IABHelper m_helper;是否很酷?我怀疑不。如果我只在我的根源活动中定义它,我如何从次要活动访问它?此外,看看这样的情景:

  1. 启动应用程序。
  2. 根活动启动和计费系统(IABHelper m_helper)设置。
  3. 转到次要活动。现在我可以访问(以某种方式)根活动的m_helper,因为根活动尚未销毁。
  4. 新闻主页按钮
  5. 推出一百万个超酷的Android应用程序。
  6. 返回到我的应用程序。次要活动被唤醒,但Root在步骤5中被Android杀死。我失去了访问m_helper的权限。

我错过了一些Android概念?

回答

1

IABHelper提供了用于将Activity连接到计费Service的便利方法。这不是一个全球性的连接,因此您可以为需要读取/写入账单信息的每个Activity创建一个。

但是,请确保您只为每个活动(通常在onCreate中为Activity)拨打m_helper.setup(this)一次。同样,只需拨打m_helper.dispose()Activity(通常在onDestroy方法)。