我有来自服务器的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得到的)。唯一的问题是,我不知道我会得到多少'类型',所以需要创建多少活动,我不能使用Fragments(这将是一个简单的解决方案),因为我有在这些Activites中使用Fragments。
对此最好的设计方法是什么?
从第一个活动(一个很长的'启动画面')我应该用startActivityForResult()开始ACTIVITY_TITLE_1活动,当我完成后,我从那个'启动画面'启动ACTIVITY_TITLE_2?
或者我应该从ACTIVITY_TITLE_1开始ACTIVITY_TITLE_2活动,并且ACTIVITY_TITLE_1内部以某种方式从数据库中获取信息,基于等待启动的JSON数组有更多活动,并从那里开始下一个活动?
对我来说,它们看起来都不是“专业”的解决方案......:D
编辑:我正在开发一种简单的“仪表板”,我每隔10分钟从服务器获得一个JSON格式的新数据。所以我只需要显示最新的JSON响应,这是活动的“蓝图”,并且一个接一个地自动显示它们......在上面的例子中,将有几个活动在几秒钟内自动交替...但是如果我在30分钟后获得服务器响应,其中包含3个活动(类型),那么我需要生成并逐个显示3个。始终基于最后的JSON响应。所以,我将立即保存到DB我的JSON响应,但在下一个自动“回合”中,我现在必须显示3个活动。所以我需要生成并启动我在飞行中创建的活动...:D
好 。您不需要创建foreach json响应的新活动。只需按住一个活动,然后根据您获得的响应加载内容。只需从您的启动屏幕(活动/片段)本身发送数据到您将生成的新活动。如果您需要保存所有响应,请保存本地数据库(Sqlite,Realm或其他),并根据您需要的值更改内容。