按下后退按钮时如何删除堆栈中的所有活动

use*_*487 4 android android-intent android-activity android-studio onbackpressed

我有一个活动列表A - B -C -D - E等等,例如最终活动是K.当我按下BACK按钮时,我希望在堆栈中清除所有这些活动.我能怎么做 ?事实上,我骑过去了

onBackPress(){ 
    moveTaskToBack(true);
    finish();
}
Run Code Online (Sandbox Code Playgroud)

但只删除当前活动并退出应用程序.然后,我回来申请,它恢复K之前的活动.我希望它从重新打开应用程序时开始.我认为这里的原因是因为堆栈中的活动列表仍然存储,所以我想在单击BACK按钮时清除所有堆栈.有什么建议 ?非常感谢你 !

小智 6

有完成所有活动的方法称为finishAffinity().

public void onBackPressed(){
  super.onBackPressed();
  this.finishAffinity();}
Run Code Online (Sandbox Code Playgroud)


Gia*_*oni 5

你需要用你的FLAG_ACTIVITY_CLEAR_TOP内部调用你的活动onBackPressed

@Override
public void onBackPressed()
{
    Intent it = new Intent(YouCurrentActivity.this, YourFinalActivity.class);
    it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(it);
    finish();
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!