Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android应用程序生命周期和singelton大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们大多数人都熟悉这种模式:

public class MySingeltone {

    public String mSomeReferenCETypeData;
    public int mSomeValueTypeData;

    private static MySingeltone mInstance;

    private MySingeltone() {

    }

    public static MySingeltone geTinstance() {
        if (mInstance == null) {
            mInstance = new MySingeltone();
        }

        return mInstance;
    }
 }

我的问题是我最近发现mInstance在使用他的活动被销毁之后,或者当整个应用程序假设为子句时,不等于null,例如:

public class SomeActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentView(R.layout.main);

        MySingeltone mySingeltone = MySingeltone.geTinstance();
        mySingeltone.mSomeReferenCETypeData = "some value";
    }
}

关闭整个应用程序运行活动(比如说…之后10秒)下次启动“SomeActivity”时,mInstance仍保持相同的引用,并且在其字段上具有相同的值.

它为什么会发生

我错过了什么?

当android垃圾收集静态成员属于应用程序?

解决方法

由于“MInstance”是一个静态变量,因此当您关闭应用程序时它不会为null.关闭应用程序并不意味着您的应用程序被销毁.

此外,没有关闭您的Android应用程序的概念.如果你离开你的应用程序,它不会同时被销毁.当Android不再使用时,Android操作系统会在内部处理它.如果内存不足,当android决定销毁应用程序时,这个静态变量也将为null.

大佬总结

以上是大佬教程为你收集整理的Android应用程序生命周期和singelton全部内容,希望文章能够帮你解决Android应用程序生命周期和singelton所遇到的程序开发问题。

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

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