Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了内部类:Android与Java大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道 Android中不建议使用内部类,因为它们包含对封闭类的引用.但是,在Java中,外部类仅在不再引用内部类时进行GCed.这意味着,在Android中,如果外部活动类中的内部类具有非静态引用,则内部类的存在时间不能长于外部活动类,因为只有在不包含引用的情况下才能销毁该活动.再到内心阶级了(至少那是我所推断的).那么使用非静态内部类的问题是什么(因为如果从java推断它们显然不会比外部活动存在更长时间)?我错过了什么吗?

谢谢!

解决方法

虑这个简单的例子
class Leaker 
{
    public static Object leakedObj;
}

class MyActivity extends Activity
{
     public class MyInnerClass { ... }

     void onCreate(Bundle savedStatE) 
     {
        Leaker.leakedObj = new MyInnerClass();
        //The activity Now won't be GCed until Leaker.leakedObj is cleared.          
     }
}

您可以轻松地在活动上下文之外传递内部非静态类.只要您没有将内部类传递给Activity的生命周期之外的对象,您应该没问题.但它确实可能通过内部阶级泄露您的活动.

大佬总结

以上是大佬教程为你收集整理的内部类:Android与Java全部内容,希望文章能够帮你解决内部类:Android与Java所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。