我正在我的应用程序中启动一个服务。点击该服务时,我会启动一个活动。当我们进入任何应用程序并按下返回按钮退出应用程序时,服务单击事件正常工作。
但是,如果我们在任何应用程序中按下主页按钮,然后单击该服务,则不会启动活动。如果我点击它超过2次,它会打开活动,有时还会打开应用程序。
因此,我无法理解按下返回按钮和主页按钮之间的区别。
我正在我的应用程序中启动一个服务。点击该服务时,我会启动一个活动。当我们进入任何应用程序并按下返回按钮退出应用程序时,服务单击事件正常工作。
但是,如果我们在任何应用程序中按下主页按钮,然后单击该服务,则不会启动活动。如果我点击它超过2次,它会打开活动,有时还会打开应用程序。
因此,我无法理解按下返回按钮和主页按钮之间的区别。
在启动活动后,如果按下HOME键,则当前活动将停止并且其任务进入后台。系统会保留活动的状态 - 即将调用onSaveInstanceState。如果用户稍后通过选择再次开始任务的启动器图标来恢复任务,则任务将回到前台并在堆栈顶部恢复活动。
然而,如果按下BACK键,则当前活动将从堆栈中弹出并销毁。假设活动已完成并且不会再次使用。因此,系统不会保留活动的状态 - 即不会调用onSaveInstanceState。
主屏幕任务:
按下Home键可以将您从应用程序切换到主屏幕,同时使您的应用程序在后台运行。这有点像在Windows PC上切换窗口。
除非你的手机资源(如内存)不足,否则它会开始关闭在后台运行的应用程序,以便为当前正在尝试执行的任务提供足够的资源。游戏通常是手机将要“杀死”以节省资源的第一个应用程序,因为它们通常比其他应用程序使用更多的内存和CPU。这就是为什么有时候你的游戏仍然在暂停运行,有时候Android已经为你关闭了它。
返回按钮是关闭应用程序的方法,以确保它们实际上被关闭。
当Activity A启动Activity B时,onPause()被调用。在Activity B中按下返回按钮后,onResume()被调用。
对于活动,它们的默认实现是基于栈的LIFO方式,工作原理如下:
在按下返回按钮时:通过调用stop方法来结束当前活动。
在按下主页按钮时:活动被暂停,如果回到该活动,则可以恢复,否则系统将调用活动的stop()方法来保存未使用的资源并利用内存。
但是,如果需要,这些功能可以通过覆盖进行编辑。