我有几个实现一些登录逻辑的应用程序。如果假设一个应用程序记录到 some_account@gmail.com,我希望所有这些应用程序都记录到 some_account@gmail.com。如果我注销,我希望所有应用程序都这样做。但我不想立即做同样的事情。应用程序本身可以处理它,但它需要知道是否有其他应用程序已经登录,如果是,只需登录与该应用程序相同的电子邮件地址。所以我需要知道记录其他应用程序的电子邮件地址是什么。我需要存储一个字符串。
首先我在考虑SharedPreferences
,但这是一个相当糟糕的主意,因为还有其他选项(并且 stackoverflow 充满了进程之间 SharedPreferences 使用的坏例子)。尽管如此,我还是尝试了这个。在所有应用程序上设置sharedUserId
,调用createPackageContext
并最终尝试获取首选项。但我无法从中读取。即使我使用过,我总是得到空值Context.Mode_WORLD_READABLE
- 顺便说一句,它已被弃用。
好的,吸取的教训不要SharedPreferences
用于那个(我想)。但是我现在需要的就是将单个字符串存储在我的其他应用程序可以读取的地方。
也许我应该使用ContentProvider
?但说真的……为了一根弦?另一种选择是什么?我敢肯定,对于如此简单的操作,我真的不需要Service
or ContentProvider
,但我实际上不知道该怎么做。