如何完成最多一项 activity 的活动?

How to finish activities up to one specific activity?

比如我开了活动A、B、C、D。

我想完成 D 和 C,然后 return 回到 B。

我不想打开activity B 有明确的任务和新的任务标志。我也想保留 activity A 以便用户可以 return 从 B 到 A 使用后退按钮。

我怎样才能做到这一点?

我想你可以在 C 和 D 类 的 activity 方法中添加 this.finish() onDestroy(),然后如果你从 C 转到 D,Android 将完成此 Activity,您将直接从 D 到 B,而不是 D 到 C。

希望对你有所帮助

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

在 B 中 activity:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if ((keyCode == KeyEvent.KEYCODE_BACK))
    {
        finish();
    }
    return super.onKeyDown(keyCode, event);
}

创建一个全局静态 boolean 说 closeActivity。默认设置为 false。当 D 结束时,将变量设置为 true。在 activity C 的 onResume 中,检查变量是否设置为 true,如果 true,则调用 finish()。这样做直到达到 activity B 并在 B 的 onResume 中将 boolean 设置为 false