2

我正在开发的 Android 应用程序中遇到了一个小问题。我的应用程序有这样的逻辑:

MainActivity(Root) -> OneActivity -> TwoActivity -> MainActivity ->  ThreeActivity

当我按下Back按钮时,我需要移动到TwoActivity

TwoActivity创建DeepLink URLMainActivity生成. _ Intent_ ThreeActivityMainActivityandroid:launchMode="singleTop",但我无法完成()它。最小 API 为 16。

我可以用Back Stack 和 Task解决它吗?

更新:

在我的TwoActivity

Intent intent = new Intent();
intent.setData(new Uri.Builder()
.scheme(SCHEMA)
.appendEncodedPath(packageName)
.appendEncodedPath(PATH_APP)
.appendEncodedPath(packageName)
.appendEncodedPath(deeplink)
.build());
startActivity(intent);

在我的AndroidManifest.xml

<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />

<data
    android:host="${applicationId}"
    android:scheme="android-app" />
</intent-filter>

所以在 TwoActivity 中的意图!= 意图 MainMenu。

4

1 回答 1

0

好吧,当您启动一个活动时,默认情况下它将被添加到后台堆栈中,并且当您随后调用 onBackPressed 时,它会从该后台堆栈中删除最后一个活动。

因此,如果您想在不将其添加到 backstack 的情况下启动 Activity,您可以这样做:

startActivity(new Intent(this, TargetActivity.class).setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY));
于 2018-04-02T21:12:23.943 回答