如果我有对象A
,它调用DAO对象B
来执行一些数据库更新 - 一旦B的
函数完成,它就会回调一个回调A
中的函数 (A.finishProcess()
) 这会产生内存问题吗?我的意思是 B
是否会保留在内存中直到 A
完成?还是 B
仍然被 GC 删除?
我问这个问题是因为我正在考虑使用回调而不是从 B
返回“结果”对象或代码。
简而言之,“返回”结果对象比使用调用对象的回调更好的设计(和内存使用)是否明智?
PS:请忽略具体的即,它没有提到AsycnTask
,这是一个人为的情况来表达我的问题:)
为任何帮助干杯
最佳答案
这都是关于引用的。只要您不存储/保留任何(强)引用(即,正确取消注册,一旦对象不再使用就清除引用等),您就不必担心,因为该对象将由气相色谱法。
关于java - 垃圾收集和回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10892918/