所以我一直在做一个从服务器接收数据的项目,例如 sessionKey。我创建了这样的getter和setter方法:
public class sEngine
{
private static String sessionKey;
public static String getSessionKey() {
return sessionKey;
}
public static void setSessionKey(
String sessionKey) {
sEngine.sessionKey = sessionKey;
}
}
然后我有活动 A。在这个活动 A 中,我将一个值插入到 setter 方法中。
public class A extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
sEngine.setSessionKey("Hello world")
}
}
我也有活动B。在这个活动B中,我调用getter方法
public class B extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
String sessionKey = sEngine.getSessionKey();
}
}
我突然想到,Android 有时会擦除所有数据以释放一些内存,例如当我让程序空闲时间过长时,或者我使用了 Advanced Task Killer。问题是如果发生这种情况,尽管我已经在活动 A 中设置了值,但当我调用 getter 方法时,我将在活动 B 中得到 null。有什么方法可以让我维护通过 setter 方法存储的值(除了使用SharedPreference),所以尽管 Android 擦除了内存/数据,但该值仍然存在?