Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在应用程序之间共享少量数据_Android - Fatal编程技术网

Android 在应用程序之间共享少量数据

Android 在应用程序之间共享少量数据,android,Android,我有两个应用程序实现了一些登录逻辑。如果让我们假设一个应用程序被记录到某个_account@gmail.com我希望所有这些应用程序都被记录到一些_account@gmail.com. 如果我注销,我希望所有应用程序都这样做。但我不想马上做同样的事情。应用程序本身可以处理它,但它需要知道是否有其他应用程序已登录,如果是,只需使用与此应用程序相同的电子邮件地址登录即可。因此,我需要知道什么是其他应用程序登录的电子邮件地址。我需要存储一个字符串 首先,我考虑的是SharedReferences,但这

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

首先,我考虑的是
SharedReferences
,但这是一个相当糟糕的主意,因为还有其他选项(stackoverflow充满了进程之间使用SharedReferences的坏例子)。尽管如此,我还是尝试了这个。在所有应用程序上设置
sharedUserId
,称为
createPackageContext
,并最终尝试获取首选项。但我无法从中阅读。我总是得到空值,即使我使用了
Context.Mode\u WORLD\u READABLE
——顺便说一句,这是不推荐的

好的,经验教训不要使用
SharedReferences
(我想)。但我现在需要的一切是将单个字符串存储在我的其他应用程序可以读取的地方

也许我应该使用
ContentProvider
?但说真的。。。一根绳子?
另一种选择是什么?我确信,对于如此简单的操作,我真的不需要
服务
内容提供者
,但我实际上不知道如何做到这一点。

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

+1非常好的问题。你已经很好地解释了你想做什么。您还展示了您在尝试找到自己的解决方案时考虑了哪些选项。除了共享文件(yeuch、易碎、不安全)或内容提供商之外,我不知道有什么好方法可以做到这一点。很糟糕,
SharedReferences
将共享从共享中移除,但也许有一天……但我不确定是否所有应用程序都在运行。广播不会传送到用户通过设置关闭或停止的应用程序。