gpt4 book ai didi

java - Android 适配库

转载 作者:行者123 更新时间:2023-12-01 15:43:34 25 4
gpt4 key购买 nike

给出的库由几个部分组成:

  • 网络模块
  • 存储模块
  • “ Controller ”模块

它们都依赖于前一个模块(存储依赖网络, Controller 依赖存储)。大多数功能都在 Controller 模块中公开。

我的第一个计划是将整个库包装在一个服务中,作为 Android 世界的适配器。但我发现服务无法返回结果。因此没有(合理的)方法来调用 Controller 模块中的一些“getStuff”方法。

执行此操作的“Android 方式”是什么?

编辑

网络模块必须在后台持续运行,因为它要处理一些正在进行的网络事务。 (所以这应该是一个服务,对吧?)存储模块监听来自网络的事件并更新自身。由于这些是 POJO,因此存储模块在网络模块上注册。

在应用程序的 Android 部分,我有几个 Activity 。这些都需要访问存储模块。但无法获取对它的引用,因为它位于应用程序的服务部分。

我会将所有必需的方法包装在 Intent 响应中,但据我所知,服务 Intents 无法使用结果进行调用。

那么...我如何将数据从服务获取到 Activity 中?

最佳答案

Android 构建工具(比如 Eclipse)支持库的概念。就像任何其他 Java 库一样,一个库可能有一堆类,其中一些是公共(public)的,消费者可以自由实例化和调用。工作区中的其他项目引用它并实例化。这种方法有什么问题吗?

编辑:如果 Activity 位于一个应用程序内,则默认情况下将共享库代码。一个应用程序中的 Activity 都在同一进程中运行(除非另有明确配置),因此无论底层代码是什么,它都是共享的。

如果 Activity 是不同的应用程序,那就是另一个问题了。您需要共享代码或数据吗?如果只是代码,那么只要所有所述应用程序都驻留在同一个工作区中,Android 构建时库仍然可以工作。仅当您需要在某些共享数据之上运行一组应用程序时,您才必须采用 IPC 机制 - 服务、内容提供商。另一个答案是云。另一个是共享内存(Android 支持)。还有一个是 SD 卡上某处的共享数据存储(这样应用程序沙箱就不会妨碍)。

关于java - Android 适配库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com