android – 视图引用显示它的活动是否安全?

我已经扩展了View并将其传递给了我的Activity实例,因此视图可以访问一些成员变量和方法.

但是现在我认为这可能是一个潜在的内存泄漏,因为即使在Activity被销毁之后,它仍然会引用成员变量中的视图,反之亦然.所以垃圾收集器可能永远不会清理它们.

但是,我在一些Google Api演示和示例中看到过,他们已将Activity作为侦听器传递给View.

解决方法:

这很好,请记住,您使用其构造函数以编程方式创建的任何普通View都将Context作为其参数 – 通常您给构造函数的Context就是这个,或者Activity本身.所以你的View已经引用了它的Activity.您也可以使用其getContext()方法在View类中获取它.

当Activity被销毁时,它将保留在内存中,直到GC可以删除它.但作为其onDestroy方法的一部分,它将对其包含的任何视图的引用设置为null,依此类推.然后GC可以安全地删除其所有组件视图.完成后,活动没有任何引用,另一个GC通道可能会删除它.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...