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