我正在实施仪表板和操作栏UI,就像在Twitter应用程序中一样:
仪表板上的每个按钮都会将用户带到另一个活动。其中一些活动比其他活动更重要,我可以想象用户通过仪表板合理地在它们之间切换。
我觉得我有两个选择:
使用意图标记保持活动周期,这样当用户返回仪表板时,它只是将仪表板活动推送到堆栈顶部。然后,当用户返回另一个活动时,它会将该活动推送到堆栈的顶部。在操作系统恢复内存之前,任何活动都不会被破坏,这样会很好。
当用户返回仪表板时,让活动被销毁,然后再重新创建。
哪种选择在性能和最佳做法方面更好?我喜欢选项1,但不确定我是否滥用了那些意图标志的目的。如果我选择选项1,我是否还应该覆盖后退按钮的功能,以便不调用finish()
?
答案 0 :(得分:0)
就个人而言,我更喜欢第一种选择。这样,当用户返回时,您可以轻松记住其他活动的状态。
例如,如果在子活动中用户滚动某个列表,然后返回到仪表板,然后返回到子活动,滚动位置将是他离开的位置。
关于记忆,我不认为这是一个问题。我们以一个标签组件为例(它是仪表板的并行导航控制器)。使用选项卡控件,所有子活动(选项卡活动)也不会被销毁。
如果记忆确实成为一个问题,我会结合你的两个想法。对于不太重要的活动,我将实现方法2(在背面销毁它们),对于更重要的活动(例如,状态对用户很重要),我将实现方法1。