我在EnterTransitionCoordinator
使用共享元素转换时遇到内存泄漏问题。您可以在下面看到应用程序结构:
它有 2 个屏幕,第一个是一个Activity
withDrawerLayout
和几个Fragment
s 里面。其中一个包含照片列表,单击特定照片会触发共享元素Fragment
从ViewPager
位于另一个中的元素转换Activity
。我SharedElementCallback
在退出和重新输入这两个Activity
s 时使用 custom 来映射正确View
的共享元素转换。我的代码基于这篇很棒的博客文章:https ://android.jlelse.eu/dynamic-shared-element-transition-23428f62a2af
问题是,在ViewPager
's 项目之间滑动后,Fragment
s 被销毁,但View
用于共享元素转换的被保留在Activity
'sActivityTransitionState
中,特别是在EnterTransitionCoordinator
. 重新进入到Activity
withDrawerLayout
然后打开另一个时也是如此Fragment
。即使s 被销毁,View
对用于共享元素转换的 s 的引用仍保留为 int s ,这会导致内存泄漏。Activity
Fragment
我的问题:有没有避免这种内存泄漏的好方法?