在Android中使用静态变量

在Android中使用静态变量

在android中,使用静态变量是推荐的做法吗?例如,在Java中实现Singleton模式,我通常会这样做:

private static A the_instance;public static A getInstance() {
    if (the_instance == null) {
       the_instance = new A();
    }
    return the_instance;}

此外,Android JVM何时清理它?

谢谢。


慕斯709654
浏览 632回答 3
3回答

杨__羊羊

static字段Class作为一个整体附加到实例,而后者又附加到ClassLoader加载类的实例上。the_instance将在整个ClassLoader回收时卸载。我90%肯定当Android破坏应用程序时会发生这种情况(不是当它进入后台,或暂停,但完全关闭时。)所以,只要你的应用程序运行,就把它想象成生存。Singleton是个好主意吗?人们有不同的看法。我认为,如果使用得当,我自己也没关系。我认为答案在Android上没有太大变化。内存使用本身不是问题; 如果你需要在内存中加载一堆东西,这或者是一个问题,或者不是,不管你是否将数据封装在Singleton中。

翻翻过去那场雪

我不确定这种方法是否适用于您可用内存有限的移动平台。更不用说该应用程序将在支持多任务的设备上运行。我认为,这种方法可能会从设备中占用内存,但我没有文档支持这一点。或许比我受过更多教育的人可以分享他们的想法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Android