我有幾個實現某些登錄邏輯的應用程序。如果讓我們說一個應用程序記錄到[email protected]我希望所有這些應用程序記錄到[email protected]。如果我註銷,我希望所有的應用程序都做同樣的事情。但我不想立即做同樣的事情。應用程序本身可以處理它,但它需要知道是否有其他應用程序已經登錄,如果是,只需登錄與此應用程序相同的電子郵件地址。所以我需要知道其他應用程序記錄的電子郵件地址是什麼。我需要存儲一個字符串。在應用程序之間共享少量數據
首先,我在考慮SharedPreferences
,但這是一個相當糟糕的主意,因爲還有其他選項(並且stackoverflow充滿了進程之間的SharedPreferences用法的錯誤示例)。儘管它我嘗試過。在所有應用上設置sharedUserId
,名爲createPackageContext
,並最終嘗試獲取偏好設置。但我無法讀取它。總是我得到空,即使我使用Context.Mode_WORLD_READABLE
- 這是不贊成的方式。
好的,經驗教訓不要使用SharedPreferences
(我想)。但是現在我需要的是將單個字符串存儲在其他應用可以讀取的地方。
也許我應該使用ContentProvider
?但認真......爲一個字符串? 還有什麼其他的選擇?我確信,對於如此簡單的操作,我真的不需要Service
或ContentProvider
,但我實際上並不知道如何做到這一點。
+1非常好的問題。你已經解釋了你想做得很好。您還展示了您在嘗試尋找自己的解決方案時考慮的選項。 –
我不知道除了共享文件(yeuch,fragile,insecure)或ContentProvider以外,還有其他的好辦法。它認爲'SharedPreferences'已經把共享分享出來了,但也許有一天...... – Simon