【发布时间】:2020-06-15 15:37:15
【问题描述】:
我有 2 个活动 MainActitvity(launchMode:standard) 和 DeepLinkingActivity(launchMode:standard)
<activity
android:name=".feature.deepLink.DeepLinkActivity"
android:launchMode="standard">
<intent-filter
android:autoVerify="true"
tools:targetApi="m">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="${deepLinkURI}"
android:path="@string/path_prefix"
android:scheme="https" />
</intent-filter>
</activity>
<activity
android:name=".feature.main.MainActivity"
android:launchMode="standard"
android:windowSoftInputMode="adjustPan|stateAlwaysHidden"/>
当 MainActivity 出现时,我单击将打开 DeepLinkActivity 的链接。来自文档
https://developer.android.com/guide/components/activities/tasks-and-back-stack#ManifestForTasks
DeepLinkingActivity 应该在与 MainActivity 相同的 Task 中启动,并放置在该 Task 的顶部。看来不是,MainActity 和 DeepLinkingActivity 现在存在于 2 个单独的任务中(按回 DeepLinkingActivity 会将我导航到启动器屏幕而不是 MainActivity)。
我确实尝试将 DeepLinkingActivity 的启动模式更改为 singleTask。它在同一个任务 MainActivity 中启动了 DeepLinkingActivity,但它也清除了返回堆栈(没有 MainActivity 可以返回)
那么,当我从深层链接启动时,如何将 DeeplinkingActivity 置于同一任务中的 MainActivity 之上。
【问题讨论】:
-
同样的问题!
-
@tobidude 实际上,我已经放弃了多活动模式。新想法是应用程序只有一个且只有一个活动。其他 UI/屏幕将是 Fragment。所以当一个深层链接出现时,只有 MainActivity 得到通知,我可以完全控制 Fragment 顺序。希望这会给你一些很好的参考。
-
您好,谢谢您,但在我的情况下,该应用程序总是从根目录打开一个全新的活动并忘记旧的活动,所以这会有所帮助。
标签: android android-activity android-deep-link android-app-links