防止 Android 重新创建已经存在的活动
Posted
技术标签:
【中文标题】防止 Android 重新创建已经存在的活动【英文标题】:Prevent Android from recreating already existent activity 【发布时间】:2017-12-25 18:33:24 【问题描述】:我的问题是与我的应用程序的深层链接。更具体地说,这也仅在尝试从 Facebook Messenger 打开指向我的应用的深层链接且聊天头处于活动状态时才会发生。
有时,当尝试使用来自 FBMessenger 的深层链接返回(未打开,仅在信使覆盖应用程序后返回)到我的应用程序(只有一个活动)时,活动会重新创建。 onCreate
方法被调用,我的活动的一个新实例正在被创建。主要问题是在旧活动被销毁后不会发生这种情况,我添加了日志并调用了第一个新活动的onCreate
,并且只有在旧活动的onDestroy
被调用之后。
那么,如果 android 尚未销毁旧实例,为什么它会尝试创建我的 Activity 的新实例?
Activity 的launchMode
设置为singleTask
。
编辑:还尝试将launchMode
设置为singleInstance
或singleTop
。
编辑 2:通过将 android:documentLaunchMode="intoExisting"
添加到活动中找到可能的修复。明天早上会再做一些测试,如果一切正常,会将此修复作为解决方案发布。
【问题讨论】:
【参考方案1】:在您的 Android 清单中使用它
android:documentLaunchMode="intoExisting"
【讨论】:
查看developer.android.com/guide/topics/manifest/…了解更多信息 您好,感谢您的快速回答,但它不起作用。相同的行为。我会更新我的问题。 我做了,但找不到任何可能阻止这种行为的设置。 检查这个:***.com/questions/4341600/… 类似的东西可能会奏效,会尝试让你知道它是怎么回事。以上是关于防止 Android 重新创建已经存在的活动的主要内容,如果未能解决你的问题,请参考以下文章
如何防止片段在活动重新创建时触发 onCreate onCreateView