在Android应用程序之间共享数据的最佳做法

时间:2013-11-26 10:49:32

标签: java android android-intent sharedpreferences android-contentprovider

我需要在不使用互联网的情况下在同一部手机上的两个Android应用之间共享数据。我想要共享的数据包括几个不同数据类型的键值对。我所知道的选项是:

  1. 使用意图 - SendReceive。但典型的例子 意图不涉及这些用例。意图似乎更多 适合共享特定mime类型的数据或启动应用程序(或 让用户选择)处理共享的数据。

  2. 分享SharedPreferences。但是MODE_WORLD_READABLE 或者不推荐使用MODE_WORLD_WRITEABLE标志 发布API 17。

  3. Broadcast Receivers - 但我并不是在听事件。 我想使用请求/响应周期。

  4. Content Providers。这很好,除了我这个事实 需要将数据存储在共享数据的应用程序的数据库中。如果我有键值对 其中值可以是不同的数据类型,这就是数据 桌子有点累赘。有没有更好的方法来做到这一点 内容提供商?

  5. 采用哪种最佳技术?

2 个答案:

答案 0 :(得分:1)

我创建了一个小型库,可以使用SharedPreferencesREAD ONLY的方式将ContentProvider从一个应用分享到另一个应用。

在此描述 - https://github.com/ratpik/android-sharedpreferences-api/blob/master/README.md

答案 1 :(得分:0)

您可以在一端设置广播接收器以侦听特定的意图类型。并且从第一次应用程序广播意图以及附加内容中保存的数据。您可以使用parcerable方法通过intent发送整个对象。

可以找到有关parcerable方法的更多信息here