2013-05-14 14 views
0

我目前将任务分配给研究和实施两个应用程序执行以下功能:Android应用异步读取某种缓冲的

  • App创建一些内容写入了某种缓冲/寄存器
  • 应用甲终止
  • 应用B的开始和读出缓冲器

的应用不应该在相同的时间运行。

首先我不知道我有哪些可能性。 我想出了以下内容:

  1. 写入文件
  2. 写一些共享内存范围

那两个选项可以做我必须授予应用B访问权文件或内存范围?

此外,我应该检查网络套接字的使用作为“缓冲区”。 我知道这将违背所有应该完成的任务,但这是预期的! 我正在尝试使用DatagramSocket,因为我可以打开这种套接字,通过它发送数据包,关闭套接字并终止应用程序。 我以为会有一些系统缓冲区保存数据包,直到有人用具有相同端口的DatagramSocket调用接收。 当没有人立即接收数据包时,甚至有可能或系统会丢弃所有数据包吗?

回答

0

在android API中有一个类是专门为允许您在不同应用程序之间共享数据而设计的 - ContentProvider

您应该创建一个ContentProvider负责数据(我建议使用SQLite数据库来存储数据),并且这两个应用程序都可以使用相同的ContentProvider来访问和/或修改数据。

ContentProvider所在的应用程序无关紧要,但可能是App A中的最佳选择,因为它是创建和修改数据的应用程序。

参见如何创建ContentProvider这个伟大指南:

http://developer.android.com/guide/topics/providers/content-providers.html

+0

除此之外,以'ContentProvider',这两个应用都在同一时间运行。 – CommonsWare 2013-05-14 11:48:11

+0

感谢您的快速回复。我会考虑一个ContentProvider的任务,但我应该想到围绕在应用程序之间共享数据的正常方式。我有一些检测工具记录两个应用程序的通信,我应该证明它会检测到这些通信,否则我应该改变它的工作。 – katha 2013-05-14 12:04:14