在Android中关闭应用程序的正确方法是什么?


69

我是Android平台的新手,这可能是一个愚蠢的问题,但是...

您如何关闭应用程序?

当我进入一个应用程序并且想离开时,我只需单击“主页”并继续前进,但是我刚刚安装了一个任务管理器应用程序,但我发现一切都在运行。

有没有退出应用程序的方法?还是我每次退出时都需要使用任务管理器?


Answers:


48

如果您使用BACK按钮退出应用程序,则它将调用onDestroy()当前的活动,如果您按HOME它仅调用onPause()
不必太担心,活动不会耗尽电池,它们只会留在内存中,因此可以打开它们未来更快。

我不建议使用其中一种任务杀手应用程序,Android出于某种原因将其设计为将这些内容保留在内存中,使用任务杀手仅是一项额外的服务,需要消耗大量电量。.您需要注意的是在后台运行服务的应用程序(例如Twitter或电子邮件客户端拉服务器),任何具有此类服务的优质应用程序都可以选择将其关闭。


1
我注意到有几个应用在这种暂停状态下确实会消耗大量电池。即,最新版本的Google Maps和一款名为GalaxIR的游戏。因此,请留意那些不好的违规者,并确保适当地将其关闭。
keithjgrant

1
如果您误食了面糊服务是后台服务,那您就错了。
内森·史威文

5
确实有可能开发的应用程序开发得不好,并且没有遵循Android应用程序的生命周期。例如,即使在线程被操作系统暂停后(通过按Home键),线程也可以保持活动状态,在这种情况下,应用将继续使用电池。
jmbouffard 2011年

1
我发现当我按下“后退”按钮时,许多应用程序都没有退出。例如:G
克莱·尼科尔斯

1
(我的编辑时间已到期)....其他无法在“后退”按钮上关闭的应用程序:Pandora(按Back后甚至可以继续播放),Google Play商店,FaceBook,Podkicker。我正在测试的方法是单击“后退”按钮,直到应用程序消失(通常使我回到首页),然后运行Easy Task Killer。
Clay Nichols

25

我很确定我所读过的所有内容都表明该Back按钮是退出应用程序的正确方法。

按下Home该按钮可使它们在后台运行,直到Android决定不再需要它们为止。如果您只需要在应用之间切换以进行检查,这会很方便(按住Home键几秒钟会为您提供最近运行的应用列表)您可以切换回大多数手机),但使用“后退”按钮显示出来时,该应用会告知您要关闭该应用。


3
按住该Home按钮只会列出最近打开的6个应用程序,而不是正在运行的应用程序。

@Loïc:对我来说显示8。
ale

1
@ LoicWolff,AlEverett这取决于所使用的启动器和ROM本身。
t0mm13b 2012年

这不是真的。活动不会在Android上在后台运行。
Dan Hulme

12

某些应用程序的菜单中具有“退出”选项。大多数不。

您真的不需要为此担心。您可以直接转到接下来需要的任何应用程序。Android在需要时可以很好地释放资源。

更新AndroidSpin进行了一些实际研究


好的链接,ty :)
Flow

7

活动不在后台运行

在Android中,活动(即您可以看到的应用程序的一部分)永远不会在后台运行。它们只能在屏幕上运行(并使用电池电源)。无论您是在家还是回到家中,该活动都会停止运行。唯一的区别是Android要求应用程序保存哪些数据,因此这两个选项都不是“正确的方法”。这仅取决于您要做什么。

如果您使用home,Android会将应用保持在相同的状态,以便稍后再返回它(例如,通过最近的应用列表)时,它仍将保持与您离开时相同的状态:在同一屏幕上,显示相同的内容。例如,如果这是一个电子邮件应用程序,而您正在查看一封电子邮件,那么它将记住那封电子邮件,并向您显示相同的电子邮件。

最终(大约半小时后),Android得出结论,您没有返回该应用程序,因此它将重置此状态:下次启动该应用程序时,它将从前/主屏幕开始。要继续该示例,电子邮件应用程序将忘记您正在查看的电子邮件和文件夹,并向您显示收件箱。

背部

如果您使用back,那么您将告诉Android您不想返回该视图。它将立即破坏有关您正在查看内容的信息。下次启动该应用程序时,它将显示前屏幕(例如收件箱)。

正如其他人所说,应用程序可以控制后退按钮的行为:例如,Web浏览器使用它来返回浏览器历史记录。我所描述的是后退按钮的默认行为,并敦促开发人员保持这种行为以避免混淆。

缓存的后台进程

无论您使用哪种方法,Android都会将应用程序尽可能长时间地保留在内存中(但不会运行)。这将更加有效。当您返回应用程序时,如果它仍在内存中,则Android可以立即再次运行它。如果它仍不在内存中,则Android必须花费时间和精力再次从存储中加载应用。

在旧的Android版本中,以这种方式在后台保留在内存中的应用程序包含在“正在运行的应用程序”列表中。这对用户来说有点令人困惑-它使人们认为该应用程序确实仍在运行-因此,较新的版本将这些应用程序称为“缓存的后台进程”,以明确它们仅在缓存中而不在运行。

那么后台应用程序呢?

之前,我说过活动不是在后台进行的。那么您的电子邮件客户端如何检查邮件?除了活动外,应用程序还可以提供服务。服务没有供您查看或与之交互的GUI,但它们确实在后台运行。通常,服务仅会很少运行,例如每小时检查一次邮件,但是应用程序开发人员可能会一直运行该服务,从而耗尽电池电量。

将活动留在家里后面不会改变Android如何对待来自同一应用程序的任何服务:该服务可以继续运行,也可以在给定时间稍后触发(下次检查邮件)。

摘要

总而言之,无论您使用后退还是回家都不重要:它只会更改应用程序下次运行时显示的内容。它对电池使用没有影响。它们都不对应于“退出” PC上的程序。


我很高兴有人报道了这个!我是一名开发人员,但我曾经在Verizon Wireless工作,当您不需要时,我无法告诉您有多少人对此感到担忧。
罗恩

3

在Android中,无需关闭应用程序,并且在其他地方需要资源时,操作系统会负责清理所有剩余应用程序的内存。使用任务杀手只会破坏操作系统的正常运行,甚至会降低设备的速度,因为始终需要从头开始重新加载应用程序。

Android应用程序生命周期的工作方式是,不在顶部的应用程序以暂停状态移动,不再使用任何cpu;如果再次打开应用程序,则仅保留内存内容;并在需要时释放内存。

话虽这么说,应用程序开发人员在创建应用程序时有责任遵循应用程序生命周期,因此可能会发生一些错误或错误,从而导致应用程序从未真正停止或暂停。如果遇到此类应用程序以及关闭该应用程序的方法,可以通过在应用程序上选择“强制停止”,通过“设置”->“应用程序”->“管理应用程序”进行操作。

但是我真的不建议使用在设备上不断运行的任务杀手。


1

只需添加schwiz的答案,即只需几行代码即可覆盖后退按钮的功能。因此关闭应用程序并不总是可靠的。因此,如果应用程序开发人员不想在按“后退”按钮时关闭该应用程序,则它不会关闭。

尽管大多数优秀的应用程序开发人员会在按下应用程序主菜单上的后退按钮时弹出一个警告对话框,询问用户是否打算退出该应用程序,但是如果您单击退出,它会关闭该应用程序。

正确的答案可能是,关闭应用程序完全取决于应用程序开发人员,如果他们希望按下主屏幕按钮关闭应用程序,则将退出代码放入onPause()。如果他们希望将其放在“后退”按钮上,则将其放在中onBackKeyPressed。因此,它并不是真正掌握在用户手中。

用户可以在不需要时避免使用未提供适当关闭功能的应用程序。任务管理器不是关闭应用程序的好方法,因为它可能会使应用程序崩溃并且无法给他们提供保存状态的机会。

操作系统会在必要时关闭该应用程序,因此您不必担心太多。

编辑:
有一个选项可以在您离开应用程序后即单击Home键时销毁应用程序。您可以转到Settings-> Developer Options-> Don't keep Activities。尽管它是开发人员选项,但是如果您过于担心后台运行的应用程序,则可以使用此选项。但是请记住,不建议非开发人员使用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.