应用程序重建后,静态字段变为空白



我有一个加载器类,当用户登录时,它会在后台从服务器加载数据。

该类有一个静态字段

public static String previousTime = "";

该字段随后被分配一个具有以下代码的值(在后台):

long localTime = dateTimeZone.convertLocalToUTC(lastSynchDate.getMillis(), false);
SyncDateTime = formatter.print(localTime);
if(!response.equals(""))
{
JSONObject resetJson = new JSONObject(response);
previousTime = resetJson.getString("previousTime");
success = resetJson.getString("success");
}
}
if(previousTime.equals(""))
{
previousTime = SyncDateTime;
}

静态字段previousTime的值将被保留。到目前为止还不错。

但对于相同的代码,当用户处于登录状态时,如果应用程序被重建,previousTime值丢失并变为空白。

然后我需要再次登录,以获取值。

我认为即使在应用程序重建之后,保持值静态也应该保持值。但我不清楚是什么原因导致它是空白的。

static变量只是一个类只有一个值的变量,而不是每个实例有一个值。

重新启动程序时,当程序的旧副本停止时,该值将丢失。当新版本启动时,该值尚未初始化,因此您需要再次登录。

Well Basicaly最好不要在应用程序中使用任何静态变量,除非是可以在应用程序重用的常量和通用函数。

尝试有意地传递变量,或者将它们保存在对所有变量都有引用的主活动中。

最新更新