在Android中处理多个活动实例的最佳方式

时间:2011-06-09 13:22:58

标签: android android-activity android-intent multiple-instances

我想在我的应用程序中制作动态表单,表单的数量将在运行时决定(1到n)。为了实现这一点,我创建了一个扩展Activity的From Class。我的应用程序可以有这个Form类的多个实例,并从一个From导航到另一个。

在同一个Class(From Class)的多个实例之间实现和通信的最佳方法是什么。

如何在两个表单之间进行通信(使用Intent ..?)。

另一个选择是我为所有表单选择一个Activity [As application]并在同一个活动中呈现每个表单?

3 个答案:

答案 0 :(得分:1)

从最终用户的角度来看,对于不同的表单具有多个独立的活动可能不是最明显的方式。您可能需要考虑将TabLayout分组,甚至是FrameLayout和菜单切换器。

无论哪种方式都会简化信息交换。如果使用FrameLayout,则所有内容都是相同的Activity,因此问题变得微不足道。如果你使用TabLayout(也许是最好的选择),那么你可以在TabActivity类上存储一个公共ArrayList,使交换再次非常简单。

如果您想要遵循独立的活动路径,需要考虑的其他选项是Intents上的额外内容(例如,一个额外的可能是表单编号,另一个是要发送的数据)。然后,活动可以处理if / else块内的额外内容,以将extra中的表单号与私有字段进行比较。

最后,您可以将数据存储在Application实例中(始终只有一个实例)并从每个Activity访问它。

答案 1 :(得分:0)

您的另一个选择是正确的...使用单个活动并更新其内容以匹配您当前关注的任何内容。这将减少您的应用程序和系统资源的开销。

答案 2 :(得分:0)

我认为第二种解决方案听起来更像是“正确的做法” 我建议不要实现不同的Activity,它是创建多个视图的更好的解决方案,如“Widgets”,它是您需要的当前表单的表示。

无论如何,如果你想在Activity之间进行通信,我认为最好的方法是通过Handler-Objects来实现。这些处理程序可以处理您可以定义的消息,并在其中放入大量数据。