当前位置: 首页 > 面试题库 >

Android中静态变量的生命周期

孙钱青
2023-03-14
问题内容

当我在主活动中将变量声明并初始化为静态变量时,活动被销毁。我仍然可以访问变量的内容吗?

例如,要始终访问我存储到此变量的AsyncTask?我想要的是在方向更改后也能够访问它。


问题答案:

静态变量与一个类相关联,并且只要该类在内存中,它们就会存在,并且在类被卸载时销毁(这很少发生)。

在Android中,您已经看到,当我们关闭任何应用程序时,它不会完全关闭,而是保留在最近的应用程序堆栈中,您可以通过按住home按钮(在大多数设备上)来查看。

当其他应用需要内存时,Android本身会淘汰那些最近的应用



 类似资料:
  • 'static 生命周期在可能存在的生命周期中是最长的,并在运行程序的周期中持续存在。static 生命周期也可能被强制转换成一个更短的生命周期。有两种方式使变量拥有 static 生命周期,这两种方式都是保存在可执行文件的只读内存区: 使用 static 声明来产生常量(constant)。 产生一个拥有 &'static str 类型的 string 字面量。 看下面的例子,了解列举到的各个方

  • 我对铁锈寿命的学习过程如下(基于铁锈书): 我想注释,当引用后面的值超出范围时 通常(并不总是!请参阅. data部分,即'静态')值位于块中 我们注释像这样的块,例如结构字段像 。 在哪一点上我的理解是错误的?提前感谢你对我的宽容。 免责声明:

  • 变量的生命周期指的是在程序运行期间变量有效存在的时间间隔。 变量的生命周期与 变量的作用域有着不可分割的联系: 全局变量:它的生命周期和整个程序的运行周期是一致的; 局部变量:它的生命周期则是动态的,从创建这个变量的声明语句开始,到这个变量不再被引用为止; 形式参数和函数返回值:它们都属于局部变量,在函数被调用的时候创建,函数调用结束后被销毁。 上面代码中,在每次循环的开始会创建临时变量 t,然后

  • 问题内容: 我已经定义了一个对象并声明了一个静态变量。在该方法中,当我尝试打印实例和类变量时,两者都打印相同的值。 不是实例变量吗?它应该打印0而不是50吗? 问题答案: 不,只有一个变量-您尚未声明任何实例变量。 不幸的是,Java允许您访问静态成员,就像通过相关类型的引用访问静态成员一样。这是IMO的设计缺陷,某些IDE(例如Eclipse)允许您将其标记为警告或错误- 但这是语言的一部分。您

  • 问题内容: 我正在使用仅包含静态变量的类来存储所有常量和运行时属性。但是,最近我看到了引用这些变量的实例,但得到的却是null。 以下是我的课程定义: 我没有存储任何引用实例化PlayerProperties类,因为其中包含的所有变量都是静态的。 当我使用引用变量androidId时,我有时会得到null。 我已经在活动之一中初始化了变量: 我的怀疑是,垃圾收集器在两者之​​间被android踢了

  • 问题内容: 在android中,推荐使用静态变量吗?例如,用Java实现Singleton模式,我通常这样做: 此外,Android JVM何时可以清除此漏洞? 问题答案: 字段会整体附加到实例,而实例又附加到加载了类的。整个回收时将被卸载。我确信这会在销毁该应用程序时发生(不是在它进入后台或暂停但完全关闭时发生)。 因此,只要你的应用程序运行,就可以将其视为生存。Singleton是个好主意吗?