我正在尝试使用单例在活动之间共享一个大数据对象。但是当我打开新活动时,单例显示为空。在我看来,无论我从哪里调用应用程序,单例都应该是相同的。
似乎单例的范围仅限于单个活动。解决这个问题使我的应用程序非常复杂。我一定做错了什么。我什至尝试在扩展的应用程序类中实例化它们......谷歌说我不应该使用它......
有人可以指出我哪里出错了吗?ie 为什么这个singletom 在每个Activity 中不包含相同的数据?
我从一个活动中调用它...
DataLog dataLog = DataLog.getInstance(this);
我有...
public class DataLog extends ArrayList<String> implements Serializable {
private static final long serialVersionUID = 0L;
private static DataLog sInstance;
private static Context mContext;
public static DataLog getInstance(Context context) {
mContext = context.getApplicationContext();
prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
if (sInstance == null) {
sInstance = new DataLog();
}
return sInstance;
}
private DataLog() {
}
public boolean add(String entry) {
super.add(entry);
return true;
}
public void add(int index, String entry) {
if (index > 0)
super.add(index, entry);
else
super.add(entry);
}
public void clear() {
super.clear();
}
...
}