在android中退出应用程序的方法

在android中退出应用程序的方法,android,Android,我有一个HomeActivity(用于在3秒钟内显示初始屏幕),然后自动重定向到LoginActivity(用于检查用户登录信息)。 在LoginActivity中,我有一个退出应用程序的退出按钮,代码如下 // TODO Auto-generated method stub finish(); android.os.Process.killProcess(android.os.Process. myPid()); Syst

我有一个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将自动处理进程。 此外,将你的应用程序从最近的应用程序中排除是不正确的行为

顺便说一句,您可以在清单中的“退出”活动标记下:

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();
}
finish()就足够了


如果在call finish()之后应用程序仍保留在内存中,则可能是应用程序内存泄漏。

在清单中提到标记时,我们可以保留

 `android:`noHistory=true
所以提到的活动不会在后面的堆栈中

例如:

<activity
            android:name="Splash_Activity"
            android:label="Splash"
            android:noHistory="true" />


您可以只调用
finish()
来关闭活动。

Android kill process本身就是一个进程,单独杀死进程不是一个好的做法
finish()
是退出活动的最佳方式OK,我使用finish();独自一人是行不通的。我对System.exit(0)使用了Finish(),但不起作用。我尝试了很多方法,但都没有回答。检查这个。finish()完成一个活动,如果你的应用程序包含多个活动,你需要关闭所有活动对不起,你的想法行不通。我的问题还在那里。谢谢,我的问题解决了。我在第一个活动标签(清单中)中使用了“android:excludeFromRecents=”true“。对不起,我的声誉低于15。