Android中后退按钮和主页按钮的区别

5

我正在我的应用程序中启动一个服务。点击该服务时,我会启动一个活动。当我们进入任何应用程序并按下返回按钮退出应用程序时,服务单击事件正常工作。

但是,如果我们在任何应用程序中按下主页按钮,然后单击该服务,则不会启动活动。如果我点击它超过2次,它会打开活动,有时还会打开应用程序。

因此,我无法理解按下返回按钮和主页按钮之间的区别。

3个回答

12

在启动活动后,如果按下HOME键,则当前活动将停止并且其任务进入后台。系统会保留活动的状态 - 即将调用onSaveInstanceState。如果用户稍后通过选择再次开始任务的启动器图标来恢复任务,则任务将回到前台并在堆栈顶部恢复活动。

然而,如果按下BACK键,则当前活动将从堆栈中弹出并销毁。假设活动已完成并且不会再次使用。因此,系统不会保留活动的状态 - 即不会调用onSaveInstanceState。

主屏幕任务:

按下Home键可以将您从应用程序切换到主屏幕,同时使您的应用程序在后台运行。这有点像在Windows PC上切换窗口。

除非你的手机资源(如内存)不足,否则它会开始关闭在后台运行的应用程序,以便为当前正在尝试执行的任务提供足够的资源。游戏通常是手机将要“杀死”以节省资源的第一个应用程序,因为它们通常比其他应用程序使用更多的内存和CPU。这就是为什么有时候你的游戏仍然在暂停运行,有时候Android已经为你关闭了它。

返回按钮是关闭应用程序的方法,以确保它们实际上被关闭。


当我们按下主页按钮时,任务堆栈之间是否有任何切换? - Pranav Agrawal
所以,在任务切换后(如果我按下主页按钮),当我点击我的服务时,它应该打开活动,但它没有。使用返回键正常工作。 - Pranav Agrawal

0

当Activity A启动Activity B时,onPause()被调用。在Activity B中按下返回按钮后,onResume()被调用。


0

对于活动,它们的默认实现是基于栈的LIFO方式,工作原理如下:

在按下返回按钮时:通过调用stop方法来结束当前活动。

在按下主页按钮时:活动被暂停,如果回到该活动,则可以恢复,否则系统将调用活动的stop()方法来保存未使用的资源并利用内存。

但是,如果需要,这些功能可以通过覆盖进行编辑。


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