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

时间:2013-08-22 11:30:24

标签: android scope static-methods

我有一个loader类,用于在用户登录时从后台加载服务器中的数据。

该类有一个静态字段

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

尝试在意图中传递变量,或将它们保存在主要活动中,这些活动已经引用了所有变量。