android-“后退”按钮将我带到启动器活动,而不是深度链接器活动

android-“后退”按钮将我带到启动器活动,而不是深度链接器活动,第1张

概述步骤如下:>启动我的应用程序,堆栈:[HomeActivity]>使用深层链接进入Facebook,进入ActivityX>按下返回按钮可返回HomeActivity而不是Facebook预期>启动我的应用程序,堆栈:[HomeActivity]>使用深层链接进入Facebook,进入ActivityX>按返回按钮可返回到FacebookApp当我的应用程序

步骤如下:

>启动我的应用程序,堆栈:[HomeActivity]
>使用深层链接进入Facebook,进入Activity X
>按下返回按钮可返回HomeActivity而不是Facebook

预期

>启动我的应用程序,堆栈:[HomeActivity]
>使用深层链接进入Facebook,进入Activity X
>按返回按钮可返回到Facebook App

当我的应用程序根本没有启动时,我得到了预期的行为.我看到像Instagram这样的其他应用程序确实能够使它正常工作.因此,即使您的应用程序在后台运行,它也带您回到发出深层链接意图的活动.

我的活动有launchMode =“ singletop”,onBackpressed()没有被覆盖,因此它调用超类实现.

我在这里想得到什么正确吗?

我调试了它,onBackpressed()最终调用了finish(),但是它使我回到了我的应用程序,而不是Facebook.

解决方法:

androID:taskAffinity=""

到< activity>清单中“深层链接的活动”的代码.

发生的事情是Facebook正在使用Intent.FLAG_ACTIVITY_NEW_TASK启动您的“深层链接活动”(您应该能够通过在onCreate()或onNewIntent()中检查活动中Intent的内容来验证这一点.

如果您的应用程序已经在运行,则AndroID将您现有的任务置于前台,并在该任务的顶部启动“深层链接的活动”.然后,当您按BACK时,它就完成了“深层链接的活动”,并将您带入现有任务.

AndroID之所以这样做,是因为您的所有活动都共享相同的taskAffinity,因此当它需要为您的应用创建新任务时,它将首先尝试查找具有相同亲和力的现有任务.

如果您将“深层链接的活动”的taskAffinity设置为空,则这将阻止AndroID寻找现有任务来启动该活动.它只会创建一个新任务,并将您的“深层链接活动”启动到该新任务中.然后,当您按BACK时,您的活动已完成,任务将为空,因此该任务将完成,并将您带回到任务堆栈中的上一个任务(应为Facebook,因为您的应用已启动)从那里).

总结

以上是内存溢出为你收集整理的android-“后退”按钮将我带到启动器活动,而不是深度链接器活动全部内容,希望文章能够帮你解决android-“后退”按钮将我带到启动器活动,而不是深度链接器活动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1089144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存