我有一个 HomeActivity (用于在 3 秒内显示启动屏幕),然后自动重定向到 LoginActivity (用于检查用户登录信息)。 在 LoginActivity 中,我有一个用于退出应用程序的退出按钮,代码如下
// TODO Auto-generated method stub
finish();
android.os.Process.killProcess(android.os.Process. myPid());
System.exit(0);
我再次在 onDestroy() 中使用了相同的代码。 但是,当我尝试退出应用程序时,程序被牢牢关闭。但仍保留在内存中(在后台应用程序列表中)。怎么解决呢?
最佳答案
调用以下方法不是一个好主意:
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
因为android会自动处理进程。 另外,从最近使用的应用中排除您的应用也不是正确的行为。
顺便说一句,您可以将其放在 list 中的“退出” Activity 标签下:
android:excludeFromRecents="true"
当应用程序关闭时,它不会出现在最近使用的应用程序中
编辑
如果它在 Android 5.0 中不起作用,则这是一个已报告的错误,因此请添加 taskAffinity 属性并使用 autoRemoveFromRecents:
android:taskAffinity=".YourExitActivity"
android:autoRemoveFromRecents="true"
然后在您的onPause()
中您可以检查sdk版本以使用finishAndRemoveTask
:
if(android.os.Build.VERSION.SDK_INT >= 21) {
finishAndRemoveTask();
} else {
finish();
}
关于android - android中退出应用程序的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871618/