我正在开发的Android应用程序中有一个小问题。我的应用程序具有以下逻辑:
MainActivity(Root) -> OneActivity -> TwoActivity -> MainActivity -> ThreeActivity
当我按下
Back
按钮时,我需要移至TwoActivity
重要的是,
TwoActivity
创建DeepLink URL
,并且MainActivity
生成Intent
的ThreeActivity
。我的
MainActivity
有android: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/