0

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

该类有一个静态字段,

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值会丢失并变为空白。

然后我需要再次登录,才能获得价值。

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

4

2 回答 2

1

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

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

于 2013-08-22T11:35:10.060 回答
0

好吧,基本上最好不要在应用程序中使用任何静态变量,除非您可以在应用程序中重复使用常量和通用函数。

尝试按意图传递变量,或将它们保存在对所有人都有参考的主要活动中。

于 2013-08-22T12:50:45.823 回答