【问题标题】:Update model objects across different activities跨不同活动更新模型对象
【发布时间】:2011-01-05 06:11:19
【问题描述】:

假设我有 2 个活动:

  • A:显示文章标题的 ListView。数据从 Web 服务器获取并从 XML 转换为 ArticleSummary 列表。服务器仅返回用户标题和 ID。点击标题开始活动 B。
  • B:编辑文章的表单。文章是从服务器获取的。当用户点击 OK 时,修改被发送到服务器并关闭活动。

当用户返回活动 A 时,我想更新文章标题而不需要任何额外的网络请求。

我正在考虑以下解决方案:

  1. 当文章被修改时,发送带有文章 ID 和新属性值的广播事件。
  2. 在活动 A 上收听此事件
  3. 更新 ArticleSummary 对象
  4. 通知 ListView 上的数据更改

有更好的方法吗?

【问题讨论】:

    标签: android architecture


    【解决方案1】:

    如果你想在不同的活动之间有一个共享的数据模型,你可以把它放在Application 类的扩展中。或者,您可以使用单例。重新启动ListView 活动时,只需从共享位置重新加载数据即可。

    正如 Fredley 所暗示的,如果您正在与服务器通信,您应该确保在单独的后台线程中进行。

    【讨论】:

      【解决方案2】:

      您还可以使用 startActivityForResult() 来启动活动并管理返回的数据。

      检查下面部分中的“从屏幕返回结果”部分。 http://developer.android.com/guide/appendix/faq/commontasks.html

      【讨论】:

        猜你喜欢
        • 2018-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多