为什么使用WeakReference Android侦听器?

为什么使用WeakReference Android侦听器?,第1张

概述我正在处理一个大的代码库,并在许多地方看到这种类型的代码: public static class RequestCustomData implements View.OnClickListener { WeakReference<MainActivity> mainActivity; public RequestCustomData(MainActivity activity) 我正在处理一个大的代码库,并在许多地方看到这种类型的代码:
public static class RequestCustomData implements VIEw.OnClickListener {    WeakReference<MainActivity> mainActivity;    public RequestCustomData(MainActivity activity) {        mainActivity = new WeakReference<>(activity);    }    @OverrIDe    public voID onClick(VIEw vIEw) {        MainActivity activity = mainActivity.get();        activity.requestCustomData(true,null);    }}

我有点迷茫,为什么这么多地方?我看了这个文件,但是这并不清楚为什么这种类型的代码在我正在处理的应用程序上被如此大量的使用

https://community.oracle.com/blogs/enicholas/2006/05/04/understanding-weak-references

任何人都可以解释一下这是一个常见的模式吗?如果是,为什么?

解决方法

A weak reference,simply put,is a reference that isn’t strong enough
to force an object to remain in memory.

如果RequestCustomData对象可能超过Activity本身,则此代码的作者最有可能希望避免泄露Activity上下文.

我建议Romain Guy’s post on this topic以及几个具体的情况来避免:

> inner classes and leaks
> threads and leaks

总结

以上是内存溢出为你收集整理的为什么使用WeakReference Android侦听器?全部内容,希望文章能够帮你解决为什么使用WeakReference Android侦听器?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1131687.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存