0

2 つの Android アプリケーションがあります: App1withProcess1Service1App2withProcess2Service2

AppManagerと呼ばれる独立したサービスであるアプリケーションがもう 1 つありますManagerServiceManagerService基本的に次の 2 つのことを行います。

  1. 電話でセンサーを使用するためのリスナーを登録します
  2. これらのリスナーを使用してデータを取得します。: データの取得には時間がかかる場合があります。

これで、AIDL が定義されたので、とバインドService1してバインドできます。との両方がリモート メソッドを呼び出して、 で定義されている登録済みリスナーを要求し、 からリストに保存されている共有センサー データを取得できます。ManagerServiceService2ManagerServiceService1Service2A(...)ManagerServiceManagerService

からセンサー データを取得Service1するリモート メソッドを実行している場合、例:A(...)ManagerService

List A(...) {
    // ...
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
            0, 0, locationListener);
    // ...
    return list;
}

private final LocationListener locationListener = new LocationListener() {

    public void onLocationChanged(Location location) {
        SaveLocationToList(location);
    }
}

上記の「request-registration-updateList-getList」プロセスが完了したService2後にのみ、センサー データのフェッチを要求することをどのように保証できますか?Service1

4

1 に答える 1

0
List A(...) 
{
    // ...
    synchronized(this)
   {
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
            0, 0, locationListener);
    // ...
    return list;
   }
}
于 2013-03-12T10:46:20.780 に答える