使用finish()和显式退出按钮来节省电池寿命?

4

在我的应用程序中,我在多个活动之间实现了许多finish()方法。我应该这样做吗?我认为是因为我有助于节省用户的电量。这是正确的吗?

此外,谷歌应用程序在其应用程序中不实现退出按钮,但我看到在许多游戏中它们有一个退出按钮。应用程序是否需要实现退出按钮?或者对于应用程序来说,可能不是必要的,但对于视频游戏来说却是必要的?

4个回答

2
以编程方式完成一个活动是完全可以的。但是,请注意,您不应该在活动之外存储对它的引用(如果您的意思是在每个活动之间完成活动),因为这会创建上下文泄漏。每个上下文泄漏将花费您约1兆字节的内存。在此阅读更多信息:http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html 关于“退出”按钮-实际上,实现它是一个坏主意。将一些数据保留在RAM中比通过执行CPU中的代码来创建这些数据要节省得多。因此,最好在第一次启动时创建一些数据,然后将其保存在内存中,而不是在每次启动时重新创建它。这极大地节省了电池电量。这就是为什么Android的生命周期被设计成这样的原因。通过杀死应用程序,您清除了内存中的数据,这意味着在下一次启动时,CPU将消耗一些电池电量来重新创建它。允许“退出”选项实际上会伤害用户,而不是帮助他们。顺便说一句,正确地在Android应用程序中实现退出很困难,所以它也不起作用;)
-- 更新: Renaud 提出了一个很好的观点,我完全同意,请看他的帖子


1

我认为,除非用户请求或期望结束Activity,否则这并不是一个好主意,但这高度取决于特定的应用程序。

如果您依赖返回和主页按钮,则不需要退出按钮。 然而,如果您希望您的游戏在任何触摸屏上运行,而不仅仅是Android,则可能很方便甚至是必需的。


1

编程上决定以程序方式结束活动应该基于您的应用程序所需的导航模型。只有在不希望用户能够返回到它时才完成活动。

为了节省资源而结束活动并不是正确的思考方式。相反,您应该设计您的活动以在Activity生命周期方法(如onResume、onPause、onStart、onStop等)中消耗/释放资源。

在Android上,用户通常使用返回按钮来退出屏幕。


1

我引用JBM的话:

通过编程方式完成一个活动程序是完全可以的。

但在一般情况下,这并不是必要的,而且可能会与Android UI人机工程学的本质相反。我建议您仔细阅读开发指南: http://developer.android.com/guide/practices/ui_guidelines/activity_task_design.html

特别是“使用BACK和HOME键从活动中导航”部分。

关于“退出按钮”的实现,我再次同意JBM的观点,即实现退出选项将不幸地导致用户对整体Android人机工程学的失望。

我的观点是,即使文档不完美,它也提供了大量足够的UI设计信息、良好的实践、编码规则和优化技巧。需要认真阅读。

更新:流行的愤怒的小鸟应用程序没有实现退出选项,而是使用返回按钮并提示用户退出。这似乎是一个非常好的方法。


Google Analytics的示例应用程序包括一个退出按钮,该按钮由Google编写。 - CrackerJack9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接