2013-07-15 3 views
0

내 안드로이드 응용 프로그램에서 구체적인 워크 플로우가 이므로 결제 서비스를 어디에 바인딩해야하는지 잘 모릅니다.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

당신은 하나를 증가, 당신은 완료 단계의 각각에 대해 동기화 INT 카운터를 사용할 수 있습니다. 아마 내가 이런 식으로 할 수 있지만, 더 높은 수준을 사용하는 것,

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

감사 : 그리고 당신이 단계를 완료 할 때마다이 작업이, psudo 코드 완료되고 다음 작업을 시작할 수 있는지 확인하기 위해 메소드를 호출 ** CountDownLatch **와 같은 도구. – dragoon