我正在使用带有 Android 支持库 v7 的 Fragment
类。在我的 Activity
的 onCreate()
方法中,我创建了一堆 fragment 并将它们存储到我的 Activity 的属性中。
this.firstFragment = new FirstFragment();
this.secondFragment = new SecondFragment();
// and so on
我使用抽屉导航模式在我的应用程序的 fragment 之间切换。要更改 Activity fragment ,我使用以下代码。
// Replace the current content of the fragment holder with the selected section fragment.
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.container, selectedFragment).commit();
这会调用已删除 fragment 的 onDestroy()
。在 onDestroy()
被调用后重用该 fragment 是否安全,或者我是否应该在每次向用户显示该 fragment 时重新创建该 fragment 。
这是一个时间与内存消耗的问题,因为至少有一个 fragment 需要一些时间才能创建。
最佳答案
onDestroy
功能是销毁所有使用的变量和消耗的内存。所有这些都将被标记为虚拟数据,以便垃圾收集器
能够在需要时将它们从内存中删除。
在调用onDestroy
后再次调用Fragment
会再次从头开始通过onCreate
和所有变量
和本地 object
将再次重新初始化。
安全吗?是的,安全。
您正在考虑更深入地处理 lifeCycle Fragment
已经被操作系统处理。
如果您想防止Fragment
被破坏,您可以将其创建为static
对象。
关于android - 在调用 onDestroy() 之后重用 Fragment 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22072289/