6

我有几个实现一些登录逻辑的应用程序。如果假设一个应用程序记录到 some_account@gmail.com,我希望所有这些应用程序都记录到 some_account@gmail.com。如果我注销,我希望所有应用程序都这样做。但我不想立即做同样的事情。应用程序本身可以处理它,但它需要知道是否有其他应用程序已经登录,如果是,只需登录与该应用程序相同的电子邮件地址。所以我需要知道记录其他应用程序的电子邮件地址是什么。我需要存储一个字符串。

首先我在考虑SharedPreferences,但这是一个相当糟糕的主意,因为还有其他选项(并且 stackoverflow 充满了进程之间 SharedPreferences 使用的坏例子)。尽管如此,我还是尝试了这个。在所有应用程序上设置sharedUserId,调用createPackageContext并最终尝试获取首选项。但我无法从中读取。即使我使用过,我总是得到空值Context.Mode_WORLD_READABLE- 顺便说一句,它已被弃用。

好的,吸取的教训不要SharedPreferences用于那个(我想)。但是我现在需要的就是将单个字符串存储在我的其他应用程序可以读取的地方。

也许我应该使用ContentProvider?但说真的……为了一根弦?另一种选择是什么?我敢肯定,对于如此简单的操作,我真的不需要Serviceor ContentProvider,但我实际上不知道该怎么做。

4

1 回答 1

0

您可以使用广播接收器。您所要做的就是在应用程序 A 中的数据发生变化时向应用程序 B 发送广播。然后应用程序 B 可以在后台处理数据,并根据需要存储它。这可能有点过度杀戮,并且可能有更好的方法来做到这一点,但它会奏效。

于 2013-10-07T20:49:53.813 回答