将不同的 activity 加载到要在返回 pr3ess 上加载的返回堆栈

Loading a different activity to the back stack to be loaded on back pr3ess

这是我的用例。我必须深入 link 到一个 activity 中,它有一个与之关联的片段。这个深度 link 要求我们登录应用程序。这是我的深link流量

Deep Link Handler Activity -> (Sign In) -> (Preference Activity).

如果您在登录后导航到目的地 activity,这会加载主屏幕,那么导航路径将为

(Main Activity) - > Activity A -> (Preference Activity)

SignIn Activity 调用目标 activity,并调用 finish() 从而将其自身从返回堆栈中移除。这是遗留代码,无法更改。

我要做的是下面的

在目标 activity 加载后 deeplink -> 登录,如果用户是第一次按下后退按钮,那么我想加载 Activity A 后跟 Home Screen 按下另一个后退按钮。

有办法实现吗?我已经完成了以下教程

  1. android activity back stack(这是默认行为)。

我的意图在深层 link 处理程序 activity 中启动 activity。

Intent processorIntent = new Intent(this, PreferencesActivity.class);
processorIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
processorIntent.putExtra(PARAM_PREFERENCE, preference);
processorIntent.putExtra(PARAM_FLOW, true);
startActivity(processorIntent);
(Main Activity) - > Activity A -> (Destination Activity)

当用户第一次从 Destination Activity 按下后退按钮时,您需要调用 startActivity 像这样

@Override
public void onBackPressed() {
    if(isFirstTime){
        Intent intent=new Intent(this, A.class);
        intent.putExtra(PARAM_FLOW, true);
        startActivity(intent);
        finish();
    }else super.onBackPressed();
}

并在 Activity A

中做同样的事情