【发布时间】:2014-08-07 19:21:47
【问题描述】:
我正在尝试在我的 Android 应用程序中实现深度链接。我一直在关注this guide。我有一个 Android Activity,它从 Android 清单中的意图过滤器开始:
<activity
android:name=".MyActivity"
android:parentActivityName=".MainActivity" >
<intent-filter android:label="@string/filter_title_deep_link">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.example" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"/>
</activity>
我从 adb 产生了这个意图:
adb shell am start -W -a android.intent.action.VIEW -d "com.example://test" com.example
正在使用正确的意图数据创建活动并按预期运行。但是,按下后退按钮时,应用程序将退出。我期待使用MainActivity 构建后台堆栈,正如Android 清单中的parentActivityName 所指定的那样。显然不是这样的。
在这种情况下如何将父活动添加到后台堆栈?
我想知道是否可以在通知上下文中使用TaskStackBuilder,如here 所示,但不确定它是如何工作的。
也许我应该有一个中间活动来使用类似的东西来构建主要活动:
TaskStackBuilder.create(this)
.addParentStack(MyActivity.class)
.addNextIntent(new Intent(this, MyActivity.class))
.startActivities();
?
【问题讨论】:
-
我有一个非常相似的问题。你找到解决办法了吗?我认为您建议的方式可行,但似乎中间活动是解决它的粗略方式。
-
@Gak2 我目前仍在使用中间活动。如果您找到替代方案,请告诉我。
标签: android android-intent android-activity deep-linking back-stack