当前位置: 首页 > 知识库问答 >
问题:

Android-headless保留片段与带有公共静态变量的类(全局类)

满才
2023-03-14
public class Globals {
    public static MyObject variable = "this is a test";
}
@Override
public void onCreate(Bundle savedInstanceState) {
    Globals.variable = new MyObject(somethingHere);
}

共有1个答案

别开诚
2023-03-14

这个实现有什么缺点吗?

内存泄漏,这取决于您在那里存储的内容。泄漏就是为什么静态数据成员在经典Java中被认为是糟糕的形式,即使我们倾向于在Android应用程序开发中更多地使用它们。

此外,这些数据需要被视为缓存,必须能够在第一次访问时惰性创建缓存。您的进程可以在任何时候终止(清除静态数据成员),用户可以返回应用程序中的任何活动(由最近任务列表提供)。如果希望此数据在进程终止后继续存在,最有可能的解决方案是将其保存在文件、数据库或SharedPreferences中。

 类似资料:
  • 问题内容: 此Java程序包含一个静态变量。但是我无法理解公共静态变量和私有静态变量之间的区别。 问题答案: 公共变量可在代码中的 任何 位置访问- 私有变量仅可在类本身内部访问。在这种情况下,您可以在类中使用它,所以很好。 请注意,静态变量是完全独立的问题-方法和类具有与变量相同的可访问性。 还有其他级别的访问权限- 和默认的“包”访问权限(无法明确指定)。有关更多详细信息,请参见Java语言规

  • 这个java程序包含一个静态变量。但是我不明白公共和私有静态变量之间的区别。

  • 问题内容: 我有一个带有全局变量int x的活动,一个片段如何获取其活动的变量x的当前值? 问题答案: 将var设置为,或使用

  • 问题内容: 我碰巧在工作场所遇到了Java代码。这是场景:有2个类- 和。 除了4个公共静态最终字符串值外,没有任何内容。它的目的是使用类似的值(不要问我为什么,这不是我的代码)。 进口。我在其中编辑了字符串值并对其进行了编译。当我运行时,我可以看到它正在使用旧值- 而不是新值。我不得不重新编译以使其使用来自的新值!(我不得不重新编译其他导入的类!) 这是仅因为JDK 1.6还是我早就应该知道重新

  • 问题内容: 和之间有什么区别? 例如 : 要么 问题答案: 尽管您 确实 希望遵守约定,但在功能上没有什么区别(字节码将 完全相同 ),请访问JLS-8.3.1。场修饰符: __ 这将是奇怪的,看.. 我也建议您访问checkstyle。 编辑: 从同一页面链接到该部分: http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls