我的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);
}
}
答案 0 :(得分:0)
您可以使用synchronized int计数器,对于您已完成的每个步骤,将其增加1。每次完成一个步骤,调用一个方法来查看任务是否完成以及下一个任务是否可以启动,psudo代码:
public synchroized boolean executeNext() {
completedCount++;
if(completedCount == TOTAL_STEPS) {
//starts the next task here
return true;
}
return false;
}