0
有2個Android應用程序:App1
與Process1
和Service1
,App2
與Process2
和Service2
。同步和互斥
還有一個應用程序AppManager
,它只是一個獨立的服務,稱爲ManagerService
。 ManagerService
基本上做兩件事情:
- 寄存器聽衆使用手機
- 這些監聽器的幫助下獲取數據的傳感器。 注意:獲取數據可能需要一些時間。現在
,具有限定AIDL,我可以ManagerService
結合Service1
並用ManagerService
結合Service2
。 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);
}
}
我究竟如何保證Service2
將僅請求只Service1
後,傳感器數據讀取已經完成在「request-registration-updateList-getList」過程之上?
這看起來過於複雜。爲什麼這三個獨立的應用程序,如果它們如此相互依賴? – CommonsWare 2013-03-06 01:31:42
3種不同的應用程序。 – NickMan 2013-03-12 10:42:20
大家好,感謝您爲我編輯和格式化這篇文章...:D我已經在這裏發佈了我的方式。 – NickMan 2013-03-12 10:53:02