2011-06-30 85 views
6

一个简单的问题,但我无法解决:我应该何时启动和停止计费服务?我在想两个决定:何时开始和停止应用内结算服务?

  • 首发的onCreate和停止中的onDestroy
  • 中的onResume启动和停止中的onPause

什么是最好的做法是什么?提前致谢。

+0

为什么不能同时做? – Jacksonkr

回答

0

我建议让您的结算服务从IntentService派生,以便它在需要时自动启动/停止。你使用startService(Intent)启动它,然后当它完成它的工作时它会关闭它。 IntentService还提供内置队列,因此只有一个意图将被一次处理,并且它是自己的工作线程。

我记得,您还需要Receiver使用IAB,然后可以使用Intent调用该服务,并根据需要执行的操作设置操作。

+0

当(最后一个)服务onHandleCommand完成时,IntentService调用stopSelf。但那时服务并不总是完成。如果服务需要向MarketBilling发送消息,则需要将该消息连接到MarketBillingService。当它绑定到服务时,它调用bind(),然后它从onHandle返回,然后ServiceConnection对象接收一个onServiceConnection回调。如果服务在这段时间内已经死掉(当我在Android 3.2上测试时,它可能并不是这样),那么我预计事情会失败,因为上下文已经死亡。 – arberg