0

Android アプリケーションにやや特殊なワークフローがあるため、請求サービスをどこにバインドすればよいかわかりません。

最初に、アプリはユーザーの場所を特定する最初のバックグラウンド タスクを開始し、その後、場所が特定された後にのみ実行できるため、2 番目のバックグラウンド タスクを呼び出します。

ここで、特定のサブスクリプションがアクティブな場合にのみ、2 番目のバックグラウンド タスクを実行したいと考えています。

問題は、2 番目のタスクの開始とサービス接続の取得の両方のイベントが時間的に不確定であるため、それらを同期する方法がわからないことです。

活動例:

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

}
4

1 に答える 1

0

完了したステップごとに、同期された int カウンターを使用して、1 ずつ増やします。そして、ステップを完了するたびに、メソッドを呼び出して、タスクが完了し、次のタスクを開始できるかどうかを確認します。疑似コード:

public synchroized boolean executeNext() {
   completedCount++;
   if(completedCount == TOTAL_STEPS) {
       //starts the next task here
       return true;
   }
   return false;
} 
于 2013-07-16T02:45:50.013 に答える