在我的应用程序中,我在活动之间实现了许多finish()
方法。我应该这样做吗?我想是因为我正在帮助保护用户的电池。这是真的吗?
此外,Google应用程序未在其应用程序中实现“退出”按钮。但我在许多游戏中看到他们有一个退出按钮。应用程序应该实现退出按钮吗?或者也许对于应用来说它没有必要,但在电子游戏中它是什么?
答案 0 :(得分:2)
以编程方式完成活动绝对可以。但是,请注意,您不应该在其之外存储对活动的引用(如果这就是您所说的在彼此之间完成活动的意思),因为这会创建上下文泄漏。每次上下文泄漏都会花费大约一兆字节的内存。在此处阅读更多内容:http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html
注册。 “退出”按钮 - 实际上,实现它是一个坏主意。将一些数据保存在RAM中比通过在CPU中执行代码创建数据所需的功率要少得多。因此,首先在第一次启动时创建一些数据时,它最好保留在内存中,而不是每次启动时都重新执行。这大大节省了电池。这就是为什么Android的生命周期是按原样设计的。通过终止应用程序,您可以从内存中清除数据,这意味着在下次启动时,CPU将消耗一些电池来重新创建它。 通过允许“退出”选项,您实际上会伤害用户,而不是帮助他们。顺便说一句,正确在Android应用中实施退出很困难,所以它赢了无论如何都要工作;)
- 更新: Renaud 增加了一个好点,我完全同意,see his post
答案 1 :(得分:1)
如果依靠后退和主页按钮,则不需要退出按钮。 然而,如果您希望您的游戏可以在任何触摸屏上运行,而不仅仅是Android,那么它可能很方便甚至是必需的。
答案 2 :(得分:1)
以编程方式完成活动的决定应基于您的应用程序所需的导航模型。如果您不希望用户返回活动,则仅完成活动。
完成一项节约资源的活动并不是思考它的正确方法。相反,你应该设计你的活动来消耗/释放活动生命周期方法中的资源,如onResume,onPause,onStart,onStop等。
在Android上,用户通常使用后退按钮退出或“退出”屏幕。
答案 3 :(得分:1)
我引用JBM:
以编程方式完成活动 绝对没问题。
...但在名义上的情况下,这不是必要的,而且,可能与android UI人体工程学完全相反。我建议你仔细阅读开发指南: http://developer.android.com/guide/practices/ui_guidelines/activity_task_design.html
ESP。 使用BACK和HOME键导航远离活动部分。
在退出按钮实现中,我再一次同意JBM这样一个事实,即实现一个Exit选项会导致用户对整体android人体工程学感到失望。
我的观点是,即使不完美,该文档也提供了大量有关UI设计,良好实践,编码规则和优化技巧的信息。这是要阅读。
- 更新:流行的愤怒的小鸟应用程序没有实现退出选项,而是使用后退按钮并提示用户退出。这似乎是一个非常好的方法。
答案 4 :(得分:0)
通常,退出应用程序或实现退出按钮是不受欢迎的。我尝试了我的应用程序,但最终决定在阅读有关它的各种评论之后取消它。退出按钮对于活动的流/生命周期来说并不自然。有关此问题的详细讨论,请阅读 Is quitting an application frowned upon?