您好我有超过20个活动的应用程序。我想在按下主页按钮时关闭我的应用程序。
答案 0 :(得分:4)
在Android中没有“关闭我的应用”的概念。在用户暂停一段时间之后,Android将摆脱您的活动,然后是您的流程。
答案 1 :(得分:3)
您可以在 AndroidManifest.xml 的根活动中使用launchMode
和clearTaskOnLaunch
标记:
android:launchMode="singleTask"
android:clearTaskOnLaunch="true"
当您再次启动应用时,所有活动都将被终止。
答案 2 :(得分:1)
你不想做System.exit() - 这不是Android Activity Lifecycle正常工作的方式(也是this)。
您应该使用moveTaskToBack()将应用移至后台。然后,Android会让您的应用在后台运行,如果它未被使用且某些内容需要稍后的资源,则将其终止。
如果您希望它在您的应用程序不再可见时关闭所有打开的活动,您可以为所有子活动设置noHist = "True"(保留主活动noHist =“False”) 。这将使它成为一个地方,而不是在他们所在的最后一个活动上重新打开你的应用程序,它将在“主”活动上打开它(即它就像他们刚刚重新启动应用程序一样)。
无论如何,请阅读以下答案以获取更多信息:Close application and launch home screen on Android
答案 3 :(得分:0)
我有同样的问题。我正在编写一个银行应用程序,并且我需要通过合同在应用程序进入后台时注销用户(或退出)。那里有明显的安全问题。
我有几种方法可以做到这一点: 1.拦截主页按钮(以及根活动的后退按钮)按键事件以调用注销和/或完成() 2.在onStop()方法中,对于每个活动,检测活动是否因为显示新活动而被停止 - 如果没有,则假设应用程序被置于后台,因此注销和/或完成()
如果通知被带到前面然后用户点击了家(我还没有调查过),第一个可能无效。或者也许还有其他方法可以将应用程序放入后台而无需按下这些按钮
第二种方式听起来很混乱&难以维持
我欢迎任何其他想法 布帘
我知道android一直是这样设计的,但认为应用程序不想要一个applicationOnStop事件似乎很幼稚
答案 4 :(得分:0)
大家好,我明白你需要知道应用程序何时进入后台以及如何检测它,如果我错了,请纠正我----
如果你的应用程序没有按回车键或主页键提供任何方式,用户可以进入后台。
您需要使用方法“dispatchKeyEvent(KeyEvent event)”来获取主页事件或返回键事件,并且在获得事件后您可以执行任务。
您甚至可以限制用户按任意键,但您无法控制主页键。