【问题标题】:Exchanging BIG sets of data between activity and remote service在活动和远程服务之间交换大量数据
【发布时间】:2013-06-12 22:15:21
【问题描述】:

在活动和远程服务之间交换块数据的推荐方法/模式是什么?我希望活动接收的数据是非原始的,包含在<Object, List<OtherObject>> 的 HashMaps。 Parcelable 对我来说似乎是完全矫枉过正,还有其他方法吗?哦,这种交换每 4 秒发生一次。平均。

【问题讨论】:

  • 为什么服务远程?
  • 来自您的服务的数据是什么格式的?
  • 该服务是远程的,因为我希望它在不同的线程上运行,因为它做了很多计算。数据实际上是 wifi 信号强度(他们的历史和指纹从他们的历史基于各种算法和camparisons 到数据库中的指纹)......基本上我试图根据我收集的 wifi 数据确定我的位置。而且我需要将数据绘制成图表,否则很难理解:)

标签: android service android-activity data-exchange


【解决方案1】:

在 Android 中,在进程之间交换大量数据的最有效方式是 ashmem。 ashmem 有一个 Java 包装器——MemoryFile,但是比较混乱——你需要在进程之间传递可打包的文件描述符,请参考这个SO post

然后您可以将数据序列化到该“文件”中并在另一端反序列化。

【讨论】:

    【解决方案2】:

    是否需要每 4 秒刷新一次数据?这对我来说似乎是雄心勃勃的。 无论如何,您必须考虑要以哪种形式存储它。您需要关注效率;下载尽可能少的“元数据”并将其缓存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      相关资源
      最近更新 更多