我已经研究了大约一个小时,无法确定是在活动中使用片段还是开始新的片段活动。
有些网站听起来好像你应该有 1 个活动,而其他一切都是片段。这是现在更合适的方法吗?我不知道您何时使用 Activity(或片段活动)以及何时使用片段。
我有一个会议应用程序: - 每个演讲者的演讲者(和子视图/活动/片段)。- 时间表(每天不同的部分) - 一般信息 - 会话(每个会话的不同部分)。
那么我是否有 4 个活动,每个活动都有自己的片段,还是我只使用 1 个活动与片段和嵌套片段?
我已经研究了大约一个小时,无法确定是在活动中使用片段还是开始新的片段活动。
有些网站听起来好像你应该有 1 个活动,而其他一切都是片段。这是现在更合适的方法吗?我不知道您何时使用 Activity(或片段活动)以及何时使用片段。
我有一个会议应用程序: - 每个演讲者的演讲者(和子视图/活动/片段)。- 时间表(每天不同的部分) - 一般信息 - 会话(每个会话的不同部分)。
那么我是否有 4 个活动,每个活动都有自己的片段,还是我只使用 1 个活动与片段和嵌套片段?
无论哪种方式都可以,但通常最好为每个“屏幕”使用一个 Activity(或 FragmentActivity)。
如果用户在逻辑上将您的应用程序视为单个屏幕,其中显示/消失的小面板用于不同类型的数据,那么请使用包含大量片段的活动。如果用户将其视为“进入不同的屏幕”,那么您可能需要多个活动。
如果您使用一个活动多片段模型,您可能会发现您的活动代码在处理所有可能的片段配置时变得非常复杂。这是一个好兆头,您可能希望将其拆分为多个活动。同样,如果您使用多活动模型,但发现在活动之间传递共享数据时事情变得复杂,请考虑合并活动。
从 Activity 转换到 FragmentActivity 就像更改一样简单extends
,无需更改其他任何内容。
我的结论:
我停止使用Activity
并且只使用FragmentActivity
它,因为它更灵活、更新和向后兼容(使用支持库)。
如果FragmentActivity
有一个组件足够大,可以成为独立组件,或者需要成为一个组件,那么我将其设为Fragment
.
我没有遇到需要完全独立的活动才能在另一个活动中的东西,但只有在该组件足够大并且完全独立到足以需要自己的活动时才应该使用它。
我不完全了解您的应用程序是否能够发出您应该使用的特定调用,如果您需要我的意见,您能否提供有关您正在处理的内容以及这些组件如何连接的更多详细信息。
问候
选择更分解的架构(许多活动)的另一个考虑因素可能是活动生命周期中的销毁/创建成本。您是否计划使用显式/隐式意图来利用现有应用程序?更多的死亡。因此,您可能在面向调度的模型中只有一个活动,并且在一个地方清楚地看到您的应用程序逻辑,但是您需要保存/恢复多少状态?重新膨胀或填充数据资源是否存在性能损失?