2

我正在动态添加和删除某些片段。我的问题是,如果我删除一个片段,例如:

getSupportFragmentManager().beginTransaction().remove(myFragment).commit();

如何确保 Android 确实从内存中删除了这个片段及其所有资源(尤其是图像)?因为对我来说,即使片段本身从布局中删除,它也会保留在内存中,直到其父活动完成。

4

1 回答 1

0

测试是否有任何 java 对象被回收,您可以做的一件事是覆盖 finalize 方法(请参阅接受的android 垃圾收集器的答案,释放对象内的对象

这可能是什么样子:在您的片段类(或任何其他感兴趣的类)中

    @Override
protected void finalize() throws Throwable {
    Log.i("Fragment Recycled",this.toString());
    super.finalize();
}

对任何其他感兴趣的对象也可以这样做。一旦 finalize 方法被覆盖,您可以查看日志 cat 以查看 Fragment 是否确实被回收。我希望这有帮助。

于 2015-07-10T19:03:13.837 回答