如何检查 Fragment 是不是从后台恢复?

Posted

技术标签:

【中文标题】如何检查 Fragment 是不是从后台恢复?【英文标题】:How to check if Fragment was restored from a backstack?如何检查 Fragment 是否从后台恢复? 【发布时间】:2011-12-01 08:25:39 【问题描述】:

是否可以检查Fragment 是否从后台恢复?例如,如果我有一个,然后通过点击“返回”android 按钮替换为另一个并返回到上一个?

【问题讨论】:

这里有一个解决方案***.com/a/7919782/543073 但是,如果您不想使用 addOnBackStackChangedListener,那么您似乎不走运...在这里查看我的问题***.com/q/7919681/543073 我一直在寻找,我认为这可以帮助你:[Link][1] [1]:***.com/a/12934711/1657161 【参考方案1】:

您需要拥有自己的后台堆栈并对其进行跟踪。

看看这个:http://adblogcat.com/fragment-transition-animations-while-hiding-the-previous-fragment/

代码拥有自己的片段堆栈并隐藏它们而不是删除它们,使其具有与替换(使用 backstack)相同的效果,只是它不会每次都重新创建片段,因此片段的状态始终保持不变。

但是,此代码存在内存泄漏,我必须将其更新为片段不存在的最新版本。希望这会有所帮助。

【讨论】:

以上是关于如何检查 Fragment 是不是从后台恢复?的主要内容,如果未能解决你的问题,请参考以下文章

Fragment全解析系列:正确的使用姿势

Android中FragmentPagerAdapter对Fragment的缓存

您如何判断是不是使异常检查或未检查?

Android后台杀死系列之一:FragmentActivity及PhoneWindow后台杀死处理机制

Chrome 扩展:检查后台脚本是不是正在运行

Activity恢复时如何获取Fragment