Java静态variables变为空

我有一个Android的Java类与一个静态实例,用户信息。 但是,在一些使用我的应用程序的用户的情况下,该静态实例中的一个variables会在一段时间后变为空。 这个java类是全局的(没有附加到任何活动)。 什么可能导致这个?

编辑:variables是永远不会改变,除了在应用程序的启动。 我已经检查过,调用它的函数永远不会被调用多次(adb logcatcertificate,当我添加一个日志说明它被调用)。

代码是这样的:

class UserCore { class UserData { int ID; string Name; } public UserData User; public static UserCore Instance = new UserCore(); public void Login() { Log.d("User", "Logging in"); new Throwable().printStackTrace(); User = null; //Fetch user data User = new UserData(); User.ID = ... User.Name = ... } .... } 

Solutions Collecting From Web of "Java静态variables变为空"

如果用户让手机进入睡眠状态,系统需要或清除内存,通常会发生这种情况。 最好将您需要的信息保存在磁盘caching中,而不是将其保存在静态variables中。 正如您所知,Android系统在何时清除应用程序方面拥有最后的决定权,因此您只需要在静态variables中保留一个非常短暂的交互所需的数据。