我正在开发的Android应用程序中有一个小问题。我的应用程序具有以下逻辑:

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


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

重要的是,TwoActivity创建DeepLink URL,并且MainActivity生成IntentThreeActivity
我的MainActivityandroid:launchMode="singleTop",我无法完成()。
最低API为16。

我可以用Back Stack and 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中。

最佳答案

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

因此,如果您想启动一个活动而不将其添加到后退堆栈中,则可以这样做:

startActivity(new Intent(this, TargetActivity.class).setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY));

关于android - 返回时如何跳过一项 Activity ? (DeepLink案例),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49618366/

10-12 00:26
查看更多