【问题标题】:Android Billing service - where to bind?Android计费服务 - 在哪里绑定?
【发布时间】:2013-07-13 20:06:49
【问题描述】:

我的 android 应用程序中有一些特定的工作流程, 这样我就不知道应该在哪里绑定 Billing 服务了。

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

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

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

示例活动:

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);
    }

}

【问题讨论】:

    标签: android android-billing


    【解决方案1】:

    您可以使用同步的 int 计数器,对于您完成的每个步骤,将其加一。并且每完成一个步骤,调用一个方法,看任务是否完成,可以开始下一个任务,psudo代码:

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

    【讨论】:

    • 谢谢,我可能会这样做,但使用更高级的工具,如 CountDownLatch
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 2014-12-25
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多