微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

解决方法:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐