【问题标题】:Android - Create and start Activities based on server response (JSON)Android - 基于服务器响应 (JSON) 创建和启动活动
【发布时间】:2019-03-02 20:01:53
【问题描述】:

我收到了来自服务器的 JSON 响应,如下所示:

{
    "types": [
                {
                    "type_name": "ACTIVITY_TITLE_1",    
                    //  ... other Activity realted data
                },
                {
                    "type_name": "ACTIVITY_TITLE_2",    
                    //  ... other Activity realted data
                }
                // ... and who knows how many more other type object...
             ]
}

我从后台服务获取此 JSON,并将其保存到数据库后,我的 SplashScreen 应该从该 JSON 生成活动。

所以我需要为我从服务器获得的每个“类型”创建一个新的 Activity,并一个接一个地自动启动它们。 每个 Activity 都是完全相同的(所以我实例化了同一个类),只是内容不同(我从 JSON 中得到的)。 唯一的问题是,我不知道我会得到多少“类型”,所以我需要创建多少 Activity,而且我不能使用 Fragments(这将是一个简单的解决方案),因为我有在这些 Activity 中使用 Fragments。

对此最好的设计方法是什么?

从第一个活动(有点长的“启动屏幕”)开始,我应该使用 startActivityForResult() 启动 ACTIVITY_TITLE_1 活动,完成后我从那个“启动屏幕”启动 ACTIVITY_TITLE_2?

或者我应该从 ACTIVITY_TITLE_1 启动 ACTIVITY_TITLE_2 活动,并在 ACTIVITY_TITLE_1 内部以某种方式从数据库中获取信息,即有更多基于 JSON 数组的活动等待开始,然后从那里开始下一个活动?

对我来说看起来都不是太“专业”的解决方案......:D

编辑我正在开发一种简单的“仪表板”,我每 10 分钟就会从服务器获取新数据,格式为上面的 JSON 格式。所以我只需要显示最新的 JSON 响应,这是一个活动的“蓝图”,并自动一个接一个地显示......在上面的例子中,会有 2 个活动在几秒钟内自动交替......但是,如果我在 30 分钟后收到包含 3 个活动(类型)的服务器响应,那么我需要一个接一个地生成并显示 3 个。始终基于最后的 JSON 响应。 因此,我将立即将我的 JSON 响应保存到数据库中,但在下一个自动“回合”中,我现在必须显示 3 个活动。所以我需要生成并启动我动态创建的活动......:D

【问题讨论】:

  • " 我不能使用 Fragments(这是一个简单的解决方案),因为我必须在这些 Activity 中使用 Fragments。"有一种东西叫做子片段(片段中的片段)

标签: android json android-activity


【解决方案1】:

好的。您无需为每个 json response 创建新活动。只需保持一项活动,然后根据您获得的响应加载内容。只需从作为 Activity/Fragment 的启动屏幕将数据发送到您将生成的新 Activity 。如果您需要保存所有响应,请保存一个本地数据库(Sqlite、Realm 或其他),并根据您需要的值更改内容。

【讨论】:

  • 可能我不够详细。我正在开发一种简单的“仪表板”,我每 10 分钟就会从服务器获取新数据,格式为上面的 JSON 格式。所以我只需要显示最新的 JSON 响应,这是一个活动的“蓝图”,并自动一个接一个地显示......在上面的例子中,会有 2 个活动在几秒钟内自动交替......但是,如果我在 30 分钟后收到包含 3 个活动(类型)的服务器响应,那么我需要一个接一个地生成并显示 3 个。始终基于最后的 JSON 响应。
  • 所以,我将立即将我的 JSON 响应保存到数据库中,但在下一个自动“回合”中,我现在必须显示 3 个活动。所以我需要生成并启动我动态创建的活动......:D
  • 问题比较复杂,但是我尽量简化了问题的基础。我需要根据外部输入自动实例化和交替相同的活动。我只对我应该使用的“架构设计”感兴趣。我的问题不仅仅是更改活动中的标题和列表。我有理由需要一个接一个地创建新的活动。但问题是:最优/理想的解决方案是什么? :)
猜你喜欢
  • 1970-01-01
  • 2018-01-20
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多