【问题标题】:Finish all activities except one完成除一项以外的所有活动
【发布时间】:2025-12-03 21:50:01
【问题描述】:

当我使用此方法时,我会返回登录页面,但我仍然可以单击返回按钮,它会将我返回到上一个活动。为什么它不关闭其他活动?

public void restartApplication() {
        Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i);   
    }

有没有办法完成除了登录活动之外的所有活动?还是重启整个应用?

【问题讨论】:

    标签: android android-activity activity-finish


    【解决方案1】:

    我认为由于包管理器,活动开始于新的历史堆栈。

    尝试使用活动名称而不是从包管理器获取。 例如。

    Intent i = new Intent(getApplicationContext(), LoginActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
    

    【讨论】:

      【解决方案2】:

      尝试使用这个 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);代替 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

      Intent intent = new Intent(getApplicationContext(),
              yourActivity.class);
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      
      startActivity(intent);
      

      【讨论】:

        【解决方案3】:

        尝试将finish(); 放在startActivity(i); 之后。

        【讨论】:

          最近更新 更多