[b][color=blue]在 Android 中如何关闭应用以及所有的 Activity
我的一个应用有很多的 Activity,在设置页中有一个删除帐号的按钮,我希望点击该按钮时清除所有保持的变量并退出应用程序。但我没找到一个简单的方法来退出应用,调用 Finish 方法只能退出当前的 Activity 。我想做的就是点击该按钮就关闭应用程序,那么下次我打开的时候就可以从第一个 Activity 开始。[/color] [/b]
[b][color=red]可以利用清理历史栈的方法,来巧妙关闭所有activity,首先用一个设置为不可见的activity A来启动程序,这个activity A的作用只是用来垫栈底,只有启动和退出程序才回用到这个activity,在你需要退出的时候,只要跳转至这个activity A
Intent intent = new Intent();
intent.setClass(B.this, A.class); //B为你按退出按钮所在的activity
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //最关键是这句
startActivity(intent);
Intent.FLAG_ACTIVITY_CLEAR_TOP使得处于栈底的A发挥推土机的作用,从最底层把栈里所有的activity都清理掉,再在自己的oncreate方法加一句finish结束自己,即可实现退出。不放心的话,可以在A的ondestroy方法中加上system.exit(0) ,连跳转过程中的线程也可以终止的。 [/color][/b]
我的一个应用有很多的 Activity,在设置页中有一个删除帐号的按钮,我希望点击该按钮时清除所有保持的变量并退出应用程序。但我没找到一个简单的方法来退出应用,调用 Finish 方法只能退出当前的 Activity 。我想做的就是点击该按钮就关闭应用程序,那么下次我打开的时候就可以从第一个 Activity 开始。[/color] [/b]
[b][color=red]可以利用清理历史栈的方法,来巧妙关闭所有activity,首先用一个设置为不可见的activity A来启动程序,这个activity A的作用只是用来垫栈底,只有启动和退出程序才回用到这个activity,在你需要退出的时候,只要跳转至这个activity A
Intent intent = new Intent();
intent.setClass(B.this, A.class); //B为你按退出按钮所在的activity
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //最关键是这句
startActivity(intent);
Intent.FLAG_ACTIVITY_CLEAR_TOP使得处于栈底的A发挥推土机的作用,从最底层把栈里所有的activity都清理掉,再在自己的oncreate方法加一句finish结束自己,即可实现退出。不放心的话,可以在A的ondestroy方法中加上system.exit(0) ,连跳转过程中的线程也可以终止的。 [/color][/b]