
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侦听器?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)