单击后退按钮时,如何从后台堆栈中删除活动

时间:2015-12-01 06:25:21

标签: android android-intent

当用户按下后退按钮时,我希望我的活动从后台堆栈中清除。我正在使用此意图打开我的活动:

Intent i = new Intent(context, OutGoingActivity.class);
i.putExtra("Number", incomingNumber);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(i);

当我按下后退按钮时,我希望我的OutGoingActivity活动将从堆栈中删除。

每次启动活动时,都应该打开一个新活动而不是堆栈。

2 个答案:

答案 0 :(得分:4)

只需使用完成(); 即可删除当前活动。

Intent i = new Intent(context, OutGoingActivity.class);
i.putExtra("Number", incomingNumber);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(i);
// use finish()
finish();

当您调用 finish()方法时, onDestroy()方法将会执行。

答案 1 :(得分:-1)

如果您想从堆栈中删除活动,则可以使用以下代码:

    android.os.Process.killProcess(android.os.Process.myPid());
    System.exit(1);

     Intent mintent = new Intent(context, OutGoingActivity.class);
     mintent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
     context.startActivity(mintent);
     finish();

但是如果你想要删除所有活动,那么你应该尝试下面的代码:

ActivityCompat.finishAffinity(OutGoingActivity.this);
finish(); 

希望它会对你有所帮助。