【发布时间】:2011-04-30 14:08:17
【问题描述】:
我想知道当用户按下主页按钮时如何退出应用程序。
据我所知,Home Button 在后台移动正在运行的应用程序并将 Launcher 进程放在前面。
我知道我可以使用 finish(),但我不知道应该在哪里调用它,因为我不知道当用户按下 Home 键时哪个函数会被调用。
谢谢。
【问题讨论】:
-
无论你认为用这种方法解决什么问题,都可以用其他技术更好地解决。我没有遇到主动销毁活动的正当理由,例如,用户回复了
Notification。例如,如果您这样做是出于安全考虑(例如,强制登录),请根据时间进行。无论用户按下 HOME 还是回复Notification或其他任何无关紧要的东西,只要用户将浏览器选项卡从 Web 应用程序中切换出去,就会导致他们自动退出 Web 应用程序。 -
同理,如果因为用户返回活动时崩溃而主动销毁活动,请只修复错误,而不是导致用户丢失上下文。而且,最重要的是,这只有在你有一个单一活动的应用程序时才真正有用,因为 Android 中没有任何东西可以让你“退出应用程序”。如果你觉得在你的场景中这仍然是合理的,我希望你能说服我。
-
@CommonsWare 我认为你是对的。我应该尝试找到其他选项来处理主页键,而不是破坏我的应用程序。谢谢你叫醒我。但是我的问题很简单,当用户按下主页键时,我的应用程序没有崩溃。实际上问题出在我的主屏幕小部件上,因为每当我通过按主页键退出我的应用程序时,如果我点击我的主屏幕小部件,那么它会在执行必要的任务后再次启动主要活动。
-
我将此解释为“您单击应用小部件中的某些内容,它会打开 Activity B,然后 BACK 将用户返回到已经运行的 Activity A”。如果是这种情况,请尝试在应用小部件的
PendingIntent中将FLAG_ACTIVITY_NEW_TASK添加到您的Intent。如果这不起作用,请尝试FLAG_ACTIVITY_CLEAR_TOP。如果我误解了这些症状,我深表歉意。 -
@CommonsWare - 我完全同意,从设计/用户体验的角度来看,当用户按下主页按钮时尝试终止应用程序是非常糟糕/毫无意义的。但是,有时客户想要这种行为并且不会让步。
标签: android key exit android-homebutton