我想跨進程提供某些信息(比方說狀態變量 - 布爾值)。該變量的狀態由服務維護,其他應用程序只能讀取它(不修改它)。跨進程共享狀態變量
我的第一個想法是SharedPreferences,但是有文檔說明說明SharedPreferences的使用在多個進程中不受支持。這給我留下了服務消息,AIDL,意圖和ContentProvider。
服務消息或AIDL不存在問題,因爲它始終有一個異步部分(以及Intents)。我也想到了ContentProvider,但爲了這個,它似乎有點誇張/臃腫。寫入外部存儲將允許其他進程修改數據。
所以,我錯過了什麼或者我想要完成的事情是不可能的? (或爲此推薦)
在此先感謝。
我正在使用AIDL,但綁定是異步的正是我的問題,因爲我需要從綁定到它的服務權限後讀取值。 關於應用程序A和B;應用B依賴應用A的情況正是我的情況。應用程序A管理服務使用的數據。應用程序B登錄到服務中。狀態變量(或標誌)會像'isSessionActive'布爾類型。 – takecare
@takecare:「我需要在綁定後從服務中讀取值」 - 然後使用「ContentProvider」,或將這些應用組合到一個應用中。 「應用程序A管理服務使用的數據。應用程序B登錄到服務「 - 因爲聽起來沒有其他應用程序是有用的,爲什麼他們分開的應用程序? – CommonsWare
我必須有單獨的應用程序,因爲這個想法是提供服務(它有點像客戶端 - 服務器模型,作爲服務器的服務器,在這種情況下,應用程序B是客戶端)。應用程序B是一個示例應用程序,但可能還有更多。 – takecare