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

时间:2015-08-07 07:07:48

标签: android

我有一个HomeActivity(用于在3秒内显示启动画面),然后自动重定向到LoginActivity(用于检查用户登录信息)。 在LoginActivity中,我有退出应用程序的退出按钮,下面是代码

        // TODO Auto-generated method stub
         finish();
         android.os.Process.killProcess(android.os.Process.  myPid());
         System.exit(0);

我再次在onDestroy()中使用了相同的代码。 但是,当我尝试退出应用程序时,程序已经关闭。但仍保留在内存中(在后台应用程序列表中)。我该如何解决?

3 个答案:

答案 0 :(得分:3)

打电话不是一个好主意:

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();
}

答案 1 :(得分:0)

完成()就够了。

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

答案 2 :(得分:0)

虽然在清单中提及标签我们可以保留

 `android:`noHistory=true

所以提到的活动不会在后面的堆栈中。

例如:

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

您只需拨打finish()即可关闭活动。