【问题标题】:How to skip one activity when returning back? (DeepLink case)返回时如何跳过一项活动? (DeepLink 案例)
【发布时间】:2018-04-03 15:32:12
【问题描述】:

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

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

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

重要的是TwoActivity 创建DeepLink URLMainActivity 生成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。

【问题讨论】:

标签: android back-stack deeplink


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回答,但在处理后 DeepLink Android 为 MainActivity 生成 Intent - 没有标志,没有附加
猜你喜欢
  • 2014-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多