【问题标题】:Android Apps to asynchronously read some kind of bufferAndroid 应用程序异步读取某种缓冲区
【发布时间】:2023-03-31 19:58:01
【问题描述】:

我目前的任务是研究和实施两个应用程序,它们执行以下操作:

  • 应用 A 将一些内容写入某种缓冲区/寄存器
  • 应用 A 终止
  • App B 启动并读取缓冲区

这些应用程序不应同时运行。

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

  1. 写入文件
  2. 写入某个共享内存范围

这两个选项是否可行,我是否必须授予 App B 访问文件或内存范围的权限?

此外,我应该检查网络套接字是否用作“缓冲区”。 我知道这会违背应该做的一切,但这是意料之中的! 我试图使用 DatagramSocket,因为我可以打开那种套接字,通过它发送数据包,关闭套接字并终止应用程序。 我认为会有一些系统缓冲区保存数据包,直到有人在具有相同端口的 DatagramSocket 上调用接收。 这是否可能,或者当没有人立即接收它们时,系统会丢弃所有数据包吗?

【问题讨论】:

    标签: android buffer shared-memory


    【解决方案1】:

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

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

    ContentProvider 驻留在哪个应用程序中并不重要,但最好是在应用程序 A 中,因为它是创建和修改数据的应用程序。

    请参阅这篇关于如何创建 ContentProvider 的精彩指南:

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

    【讨论】:

    • 除了ContentProvider,两个应用程序同时运行。
    • 感谢您的快速回复。我会考虑使用 ContentProvider 来完成这项任务,但我应该考虑一下在应用程序之间共享数据的正常方式。我有一些检测工具可以记录两个应用程序的通信,我应该证明它也会检测到这些通信,否则我应该改变它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多