有 2 个 android 应用程序:App1
with Process1
and Service1
,App2
with Process2
and Service2
。
还有一个应用程序AppManager
,它只是一个名为ManagerService
. ManagerService
基本上做两件事:
- 注册监听器以使用手机上的传感器
- 在这些监听器的帮助下获取数据。注意:获取数据可能需要一些时间。
现在,通过定义的 AIDL,我可以绑定Service1
和ManagerService
绑定Service2
. 和现在ManagerService
都可以调用远程方法来请求在 中定义的注册侦听器,然后从 中获取保存在列表中的共享传感器数据。Service1
Service2
A(...)
ManagerService
ManagerService
如果现在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