在我的 Android 应用程序中,我的一项 Activity 包括实例化我的其他类。 有些类需要写入屏幕。我想将所有布局交互保留在顶层。 因此,我创建了一个接口(interface),其中包含可以调用以输出到屏幕的方法列表。然后我在主 Activity 中实现这个接口(interface)。 最后,在实例化类时,我将“this”传递给构造函数,它被保存并用于回调。
我的问题是:由于我将 Activity 对象本身传递给它的对象之一,是否存在内存泄漏的危险?
最佳答案
我会为此研究标准的 Android 处理程序机制(也支持针对 UI 更改的自定义回调)。
下面是定义自定义回调以处理 UI 更改的处理程序示例:
只要您能确保您的“this”的范围正确,您就应该非常安全,但是,一旦您开始将 Activity 传递给其他类,它就会为潜在的内存泄漏敞开大门,因为代码段现在可以获取该实例,并防止它在本应在对象上发生垃圾回收的时间被垃圾回收。
关于Android 回调 - 这是潜在的内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5591691/