销毁android片段和所有子视图

问题描述 投票:0回答:1

我有一个带有1 activity7 fragments的android应用程序。每个fragment都有一个listview,具有100-150个视图。

该应用运行某些服务并且全天运行,每天一次,该应用因内部内核错误而崩溃:

 JNI ERROR (app bug): weak global reference table overflow (max=51200)
Last 10 entries (of 51200):
    art/runtime/indirect_reference_table.cc:129]     51199: 0x18d4fe20 android.view.render node

似乎由于应用程序生成的视图过多而导致内存泄漏。

我认为当我用所有视图重新生成片段时,就会出现问题,似乎视图没有完全销毁。

当我重新生成片段以更新数据时,我使用这种方法:

for (Fragment fragment : getSupportFragmentManager().getFragments()) { getSupportFragmentManager().beginTransaction().remove(fragment).commitAllowingStateLoss(); } 有一种方法可以销毁片段和其中的所有视图实例吗?

感谢

android fragment
1个回答
0
投票

如果使用viewPager:

    @Override
public void onDestroy() {
    super.onDestroy();
    try {
        if (viewPager != null) {
            viewPager.removeAllViews();
            viewPager = null;
        }
    } catch (Exception E) {
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.