当用户按下后退按钮时,我希望我的活动从后台堆栈中清除。我正在使用此意图打开我的活动:
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活动将从堆栈中删除。
每次启动活动时,都应该打开一个新活动而不是堆栈。
答案 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();
希望它会对你有所帮助。