Android加载活动堆栈,vs后退按钮

时间:2013-01-15 15:36:31

标签: android back-button activity-stack

目前关于后退按钮的最佳做法是什么?

许多应用程序在您打开它们之后(在它们处于onStop和onDestroyed之后)保存并恢复整个活动堆栈,以Facebook为例,当您打开它并且您的最后一个地方在一张照片中,然后再按下没有关闭Facebook应用程序,它会无限制地回到你几天前打开应用程序时做的第一件事。

我认为这个设计惯例与后退按钮的预期略有不同。它通常用于杀死应用程序或停止主视图,将您带回设备的启动器屏幕。

Facebook只是应用程序执行此操作的一个示例。

是否有开发人员文章或权威来源(如Google I / O)讨论此功能的实用程序(恢复活动堆栈并使用后退按钮遍历它们)与其他功能(杀死用户退出应用程序的视图)?如果是这样,请在此讨论并链接它们。我希望这不被认为太主观,因为正确使用了后退按钮以及不正确的使用

4 个答案:

答案 0 :(得分:2)

Facebook应用实际上是Android的基本默认行为。这些应用程序对此行为不做任何特殊处理。默认情况下会保存活动堆栈。

引用较多的博客之一是CommonsWare's BACK means Back。基本上," BACK"按钮意味着它应该带您到您刚才所在的上一页。在Android中,这通常是您刚刚推送的最后一个Activity。如果用户想要离开应用程序,那么他或她可以按下" HOME"按钮,始终按下活动堆栈并将用户带到主屏幕。

这意味着,BACK按钮的功能完全取决于所讨论的应用程序,但其概念是颠倒用户刚刚执行的操作。如果您在游戏中,则转到子菜单,“返回”按钮会将您带到顶部菜单。如果您在浏览器中,“返回”按钮可能会将您带到您正在查看的最后一个网页。如果您在浏览器中并且位于首页,则用户可能希望BACK按钮关闭应用程序,因为用户在打开浏览器之前执行的上一个操作是打开应用程序。如果用户开始下载,则BACK按钮可能是取消它。

Facebook和其他人喜欢考虑的一个功能改进是在 x 天数后擦除堆栈,因为用户可能不记得自上次使用中断以来他们做了什么。但这个用例非常小。

总的来说,这就是人们总是强调可用性测试的原因。当你按下后退按钮时,你必须弄清楚应用程序中99%的人所期望的。

答案 1 :(得分:2)

您可以在Android Developer网站上找到您不应更改后退按钮的预期行为。让操作系统处理后退按钮。

  

应用程序不会重新定义系统图标的预期功能(例如   后退按钮)。

该引用是从其核心应用Quality page中提取的。

您应该考虑使用向上导航。您可以阅读有关为其设计的更多信息here

最后,这里有一个关于如何实现各种类型导航的教程(横向,祖先[向上],时间,后代)。 检查here

答案 2 :(得分:0)

根据我的个人经验,您可以关闭最多,使用后退按到前一个屏幕,只需长按一下后退按钮。
最好的例子是浏览器应用程序,无论是原生的或第三方浏览器

答案 3 :(得分:0)

我认为这种行为取决于应用程序逻辑。 默认情况下,需要在前一个屏幕上移动(后台堆栈中的活动,或者如果它保存到片段的后台堆栈中则为片段)。 实际上这个案子没有任何银弹。只需使用“背压实施”即可。我的观点是,在按下后,应用程序必须以先前的逻辑状态显示。