当完成任何形式的退出时,即使用HOME、SWITCH和BACK按钮,完全关闭Android应用程序
我正在构建一个Android应用程序,特别是一个登录页面,如果用户以任何方式退出登录页面,即使用开关、主页或返回按钮,我希望该应用程序完全关闭该应用程序 应用程序不应完全关闭的唯一时间应为用户成功登录时,即按下自定义创建的登录按钮或输入按钮时 我已经能够成功地关闭应用程序,但在中,即使用户成功登录,也会关闭应用程序。它不是要这样做的 下面是我完全关闭的代码-我接管了onDestroy()、onBackPressed()、finish()和onStop()方法: 有人对我的问题有什么想法吗 非常感谢您的帮助请查看当完成任何形式的退出时,即使用HOME、SWITCH和BACK按钮,完全关闭Android应用程序,android,Android,我正在构建一个Android应用程序,特别是一个登录页面,如果用户以任何方式退出登录页面,即使用开关、主页或返回按钮,我希望该应用程序完全关闭该应用程序 应用程序不应完全关闭的唯一时间应为用户成功登录时,即按下自定义创建的登录按钮或输入按钮时 我已经能够成功地关闭应用程序,但在中,即使用户成功登录,也会关闭应用程序。它不是要这样做的 下面是我完全关闭的代码-我接管了onDestroy()、onBackPressed()、finish()和onStop()方法: 有人对我的问题有什么想法吗 非常感
onStop()
方法的说明。我假设您打开另一个活动
当用户成功登录时,您上面的活动
将不可见,并在退出应用程序的位置调用onStop()
。所以不要重写onStop()
查找onStop()方法的解释。我假设您打开另一个活动
当用户成功登录时,您上面的活动
将不可见,并在退出应用程序的位置调用onStop()
。因此,只要不要覆盖onStop()
每次活动不可见时都会调用onStop()
方法:当你的应用程序进入后台时,当屏幕关闭时,或者当你切换到另一个活动时
不管怎样,你试图做的事是被强烈劝阻的。
看看这个(Dianne Hackborn是Android框架的主要开发者之一)
使用System.exit()
、Process.killProcess()
等强制关闭应用程序有与Android应用程序生命周期冲突的强烈风险,并可能破坏其保存状态,导致用户出现意外和不愉快的行为
更好的方法是在启动登录活动时使用标志和。
这将从应用程序中删除以前的活动,这与从用户角度启动新应用程序相同。每次活动不可见时都会调用onStop()
方法:当应用程序转到后台时,当屏幕关闭时,或切换到其他活动时
不管怎样,你试图做的事是被强烈劝阻的。
看看这个(Dianne Hackborn是Android框架的主要开发者之一)
使用System.exit()
、Process.killProcess()
等强制关闭应用程序有与Android应用程序生命周期冲突的强烈风险,并可能破坏其保存状态,导致用户出现意外和不愉快的行为
更好的方法是在启动登录活动时使用标志和。
这将从应用程序中删除以前的活动,这与从用户角度启动新应用程序相同。只需创建一个类成员布尔值mLoggedIn
,并在按下自定义创建的登录按钮或输入按钮时将其设置为true。
然后
只需创建一个类成员布尔值mLoggedIn
,并在按下自定义创建的登录按钮或输入按钮时将其设置为true。
然后
您没有对其中任何一个或super.onStop()
或任何其他super.method()
进行@覆盖。这会导致问题吗?@TronicZomB@Override
注释只是一种方便,如果以某种方式重命名或删除被重写的方法,注释会有所帮助,因为它会导致编译器警告/错误。这不是强制性的all@nicopico好的,谢谢。我还在学习,所以很高兴认识你。@TronicZomB:你好,谢谢,有super.onStop();开始时,onStop()并不能阻止用户成功登录时它完全退出。@AMonari真棒,很高兴我能提供帮助。您没有对其中任何一个或super.onStop()
或任何其他super.method()
进行@覆盖。这会导致问题吗?@TronicZomB@Override
注释只是一种方便,如果以某种方式重命名或删除被重写的方法,注释会有所帮助,因为它会导致编译器警告/错误。这不是强制性的all@nicopico好的,谢谢。我还在学习,所以很高兴认识你。@TronicZomB:你好,谢谢,有super.onStop();在开始时,当用户成功登录时,onStop()不会阻止它完全退出。@AMonari真棒,很高兴我能提供帮助。嗨,谢谢。实际上,当用户登录时,我调用另一个活动,即主页。我已停止覆盖onStop(),但我的问题仍然存在,即假设用户使用home按钮或switch按钮退出应用程序,应用程序不会完全关闭,我要求它这样做。您好,谢谢。实际上,当用户登录时,我调用另一个活动,即主页。我已停止覆盖onStop(),但我的问题仍然存在,即假设用户使用home按钮或switch按钮退出应用程序,应用程序不会完全关闭,我要求它这样做。@nicopio:您好,谢谢。我已经阅读了论坛,我知道不鼓励调用onStop(),如果用户要在主页中退出并切换按钮或退出应用程序(比如通过选择呼叫),我可以如何完全关闭应用程序?Thanks@AMonari我对我的帖子做了一个编辑,这可以让你找到一些合适的方法来实现你想要的。您可以覆盖onStop()
,这是对System.exit()
的调用,这是不鼓励的。@nicopio:您好,谢谢。我读过论坛,我明白了
// Deal with back button
public void onBackPressed() {
System.runFinalizersOnExit(true);
System.exit(0);
}
// Deal with exiting of app
public void finish() {
System.runFinalizersOnExit(true);
System.exit(0);
}
// Deal with exiting of app
public void onDestroy() {
System.runFinalizersOnExit(true);
System.exit(0);
}
// Deal with exiting of app
public void onStop() {
System.runFinalizersOnExit(true);
System.exit(0);
}
@Override
protected void onPause()
{
super.onPause();
if (!mLoggedIn)
{
finish();
}
}