Android结算服务 - 在哪里绑定?

时间:2013-07-15 20:14:36

标签: android android-billing

我的Android应用程序中有一些特定的工作流程, 所以我不知道应该在哪里绑定结算服务。

最初我的应用程序启动第一个确定用户位置的后台任务,然后调用第二个后台任务,因为它只能在确定位置后才能运行。

现在我希望第二个后台任务仅在某个订阅处于活动状态时执行。

问题是两个事件 - 第二个任务的开始和获得服务连接 - 都没有及时确定,所以我不知道如何在它们之间进行同步。

示例活动:

public class MyActivity extends Activity
{
    public void onLocationChanged(Location location)
    {
        // callback is called when location is obtained
    }

    public void onServiceConnected(ComponentName name, IBinder service)
    {
        // called when service is connected
        mService = IInAppBillingService.Stub.asInterface(service);
    }

}

1 个答案:

答案 0 :(得分:0)

您可以使用synchronized int计数器,对于您已完成的每个步骤,将其增加1。每次完成一个步骤,调用一个方法来查看任务是否完成以及下一个任务是否可以启动,psudo代码:

public synchroized boolean executeNext() {
   completedCount++;
   if(completedCount == TOTAL_STEPS) {
       //starts the next task here
       return true;
   }
   return false;
}