Android 回调 - 这是潜在的内存泄漏吗?

the*_*itz 5 android memory-leaks callback android-activity

在我的 Android 应用程序中,我的活动之一包括实例化我的其他类。有些类需要写入屏幕。我想将所有布局交互保留在顶层。因此,我创建了一个接口,其中包含可以调用以输出到屏幕的方法列表。然后我在主活动中实现这个接口。最后,在实例化类时,我将“this”传递给构造函数,并将其保存并用于回调。

我的问题是:由于我将 Activity 对象本身传递到其对象之一,是否存在内存泄漏的危险?

dde*_*ele 2

我会为此研究标准 Android 处理程序机制(还支持 UI 更改的自定义回调)。

以下是定义自定义回调来处理 UI 更改的处理程序的示例:

http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/tictactoe/library/GameActivity.html

只要您可以确保您的“this”范围正确,您就应该非常安全,但是,一旦您开始将活动传递给其他类,它确实为潜在的内存泄漏打开了大门,因为代码片段现在可以获取该实例并阻止它在应该在对象上发生垃圾收集的情况下及时被垃圾收集。