0

有 2 个 android 应用程序:App1with Process1and Service1App2with Process2and Service2

还有一个应用程序AppManager,它只是一个名为ManagerService. ManagerService基本上做两件事:

  1. 注册监听器以使用手机上的传感器
  2. 在这些监听器的帮助下获取数据。注意:获取数据可能需要一些时间。

现在,通过定义的 AIDL,我可以绑定Service1ManagerService绑定Service2. 和现在ManagerService都可以调用远程方法来请求在 中定义的注册侦听器,然后从 中获取保存在列表中的共享传感器数据。Service1Service2A(...)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 回答