gpt4 book ai didi

java - 仅具有公共(public)静态成员的公共(public)类

转载 作者:行者123 更新时间:2023-12-01 15:06:12 25 4
gpt4 key购买 nike

我有一个仅包含公共(public)静态成员的公共(public)类。

我知道这不是最好的做法,但我只是想知道为什么在我的 Android 上,如果我暂停应用程序,打开其他几个应用程序,然后再回到我的应用程序,所有变量似乎都是(空)。

问题:

  1. 是否是因为 Android 进行了某种内存释放?
  2. 那么保留这些变量的更好方法是什么?
  3. 扩展 Application 的类是一个好的选择吗?

这是我的代码:

public class Session {

public static String ID = null;
public static String UNIQID = null;
public static String TOKEN = null;
public static String SESSIONID = null;
}

最佳答案

由于您的应用程序进程可能随时被破坏,因此这些静态实例确实可能会被垃圾收集。

如果您将这些静态变量放入自定义 Application 对象中,则同样适用,除​​非您每次(重新)创建应用程序时在应用程序的 onCreate 函数中初始化它们。

您应该使用 SharedPreferences 或 SQLite 数据库来跟踪持久数据。

如果这些变量太复杂而无法像这样存储,那么您可能需要考虑使用单例(不像以前那样建议对应用程序进行子类化)。

public class MySingleton {

public static MySingleton getInstance(Context context) {
if (instance==null) {
// Make sure you don't leak an activity by always using the application
// context for singletons
instance = new MySingleton(context.getApplicationContext());
}
return instance;
}

private static MySingleton instance = null;

private MySingleton(Context context) {
// init your stuff here...
}

private String id = null;
private String uniqueId= null;
private String token = null;
private String sessionId = null;
}

关于java - 仅具有公共(public)静态成员的公共(public)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12917883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com