Android应用程序生命周期和singelton

Android应用程序生命周期和singelton,第1张

概述我们大多数人都熟悉这种模式: public class MySingeltone { public String mSomeReferenceTypeData; public int mSomeValueTypeData; private static MySingeltone mInstance; private MySingeltone() { 我们大多数人都熟悉这种模式:

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所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1129732.html

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

发表评论

登录后才能评论

评论列表(0条)

保存