我在正确的任务堆栈方面遇到了一些问题,并在深度链接实现期间将其置于最前面......我有一个Activity
这样的声明:
<activity
android:name=".activity.ArticleSingleActivity"
android:label="@string/app_name"
android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="site.com"
android:pathPrefix="/article" />
</intent-filter>
</activity>
它有launchMode="standard"
并且没有父级,因为它Activity
可以从应用程序中的许多地方启动:本机按钮或从WebView
's. 即使在几乎每个实例的底部都放置了相关文章,因此它可能会自称(新实例)并且每篇文章都应该出现在新的“窗口”中
现在:当我的应用程序在后台运行并且在应用程序管理器中可见时,深层链接会ArticleSingleActivity
在其他活动之上触发而没有问题。Intent 包含这些标志:
FLAG_ACTIVITY_BROUGHT_TO_FRONT
FLAG_ACTIVITY_NEW_TASK
FLAG_RECEIVER_FOREGROUND
当应用程序不在后台堆栈中(可以说被用户删除)ArticleSingleActivity
时,启动时没有带上至前标志,一切都像往常一样开始,但我发现了一些小的不当行为。当我导航到另一个ArticleSingleActivity
(例如从底部的相关或Activity
从侧面菜单到任何其他)时,然后按主页并尝试打开相同的深层链接 url,然后应用程序就会被带到前面。它不显示链接的文章,但是Activity
当应用程序“归巢”时它在顶部。断点也没有触发onCreate
,onActivityReenter
甚至onNewIntent
. 在我看来,系统“记得”它在后台堆栈中启动了Acticity
匹配此 url,因此它只是将整个应用程序带到前面,但从Activity
堆栈中不正确(没有像上面那样的 bring_to_front 标志)。
当我什至无法为Intent
系统提供的自定义标志设置自定义标志或进行任何Intent
签入时,我该怎么处理这种行为,因为堆栈上的onCreate
任何活动都没有调用它?Activity