我应该管理活动堆栈还是允许销毁活动?

时间:2011-12-08 13:46:38

标签: android

我正在实施仪表板和操作栏UI,就像在Twitter应用程序中一样:

Twitter Dashboard for Android

仪表板上的每个按钮都会将用户带到另一个活动。其中一些活动比其他活动更重要,我可以想象用户通过仪表板合理地在它们之间切换。

我觉得我有两个选择:

  1. 使用意图标记保持活动周期,这样当用户返回仪表板时,它只是将仪表板活动推送到堆栈顶部。然后,当用户返回另一个活动时,它会将该活动推送到堆栈的顶部。在操作系统恢复内存之前,任何活动都不会被破坏,这样会很好。

  2. 当用户返回仪表板时,让活动被销毁,然后再重新创建。

  3. 哪种选择在性能和最佳做法方面更好?我喜欢选项1,但不确定我是否滥用了那些意图标志的目的。如果我选择选项1,我是否还应该覆盖后退按钮的功能,以便不调用finish()

1 个答案:

答案 0 :(得分:0)

就个人而言,我更喜欢第一种选择。这样,当用户返回时,您可以轻松记住其他活动的状态。

例如,如果在子活动中用户滚动某个列表,然后返回到仪表板,然后返回到子活动,滚动位置将是他离开的位置。

关于记忆,我不认为这是一个问题。我们以一个标签组件为例(它是仪表板的并行导航控制器)。使用选项卡控件,所有子活动(选项卡活动)也不会被销毁。

如果记忆确实成为一个问题,我会结合你的两个想法。对于不太重要的活动,我将实现方法2(在背面销毁它们),对于更重要的活动(例如,状态对用户很重要),我将实现方法1。