0

我正在寻找实现 Google IO Rest Structure A 部分 - 使用服务 API。所以我已经确定了结构的以下部分。

  1. 提供rest方法的接口。
  2. 实现上述接口的处理器类。会有很多处理器类。每个处理器类将返回一个模型类类型。
  3. 处理单个处理器的服务提供商。从处理器返回的数据由服务提供者处理。这将调用处理器函数,并获取返回的数据。
  4. 作为服务类的 SerivceProcessor。应用程序中将只有一个类。这将根据传递给它的 Bundle 数据与各种 SericeProvides 进行通信。
  5. 在 Activity 和 Service 之间提供高级集成的服务助手

现在我不清楚这里。该服务具有已请求的数据。如何进一步进行。我如何将数据从服务传递回 ServicHelper。将其放入带有标签 BUNDLE_EXTRA 的 Bundle 中?为此,我的 pojo 必须是 Serializable 或 Parceable。我知道 Serializable 在 Android 平台上是一个非常糟糕的选择。他们还有哪些其他选择。我会使用广播意图吗?

感谢您在这里的任何帮助。

4

1 回答 1

4

你可以做几件事。

  • 通过意图通知服务助手(让它实现广播接收器)。这可能是一个坏主意,因为通过一次休息调用,您可以获得很多行。在这种情况下,您应该实现某种工具来将您的 pojo 放入您要发回的意图中(如 fillIntent/getFromIntent 方法)

  • 在服务提供者内部,将结果数据存储在某处(sqllite、contentprovider、文件),然后抛出一个仅包含 requestId 和调用结果的广播意图。服务助手拦截广播并通知任何感兴趣的活动请求已完成。活动据此更新用户界面。在这种情况下,servicehelper 仅用于跟踪正在进行的请求/通知结果。

在我看来,这种方法更好,因为您将 ui 和模型分开,并且您不要求 Activity 存储数据,而且它更“面向休息”。

另外:前段时间我尝试实现这种方法。它尚未完成,但您可以在此处检查服务助手和请求/结果意图postman lib

一个更成熟和健壮的库是robospice,如果我必须处理休息服务,我现在会使用它。

于 2012-11-30T07:29:24.317 回答