假设我有一个单例类(Downloader)负责下载和保存文件。当客户端请求下载时,他还必须提供回调。我的问题是关于那些回调对象的存储。
如果我有一个实现回调接口的 Activity,然后请求多个大下载,Downloader 类将无限期地持有对该 Activity 的引用。如果在下载完成之前请求它们的 Activity 经历了它的生命周期并被销毁怎么办。
在这种情况下,Downloader 将阻止回收器对 Activity 进行垃圾收集。我不介意请求的下载继续。然而,我想做的是以某种方式检测应该收集提供的回调,并且我实际上正在泄漏它。
有这样的设计模式吗?我在想其中一个Reference
子类会很有用。
谢谢。