我对内存泄漏有疑问。例如,用户打开一个屏幕(让我们说Fragment
)并点击一个按钮,该按钮会启动一个新的Runnable
,其中包含一些操作,例如从网络API获取一些数据然后用户点击返回键。显然Runnable
是一个匿名类,它隐含了对外部类的引用,并且在运行时,应用程序正在泄漏内存。几秒钟后,操作完成,并将一些数据存储到数据库中。所以现在它可以被垃圾收集,而且已经完成了我们想要的工作。
所以我想问的是:是的,它是否泄漏但是如果我们在网络通话后没有打电话给我,那么在我看来它是安全的,它有助于完成任务。
我应该避免这种方式,并在片段/活动被破坏时将Runnable设置为null并找到另一种方式来做这种事情,比如使用IntentService
?