シングルトンを使用して、アクティビティ間で大きなデータ オブジェクトを共有しようとしています。しかし、新しいアクティビティを開くと、シングルトンが空になります。アプリケーションのどこから呼び出しても、シングルトンは同じであるべきだと私には思えます。
シングルトンのスコープが個々のアクティビティに限定されているようです。これを回避すると、アプリが非常に複雑になります。私は何か間違ったことをしているに違いない。拡張された Application クラスでそれらをインスタンス化しようとさえしました...Googleはそれを使用する必要はないと言いますが...
誰かが私が間違っているところを指摘できますか? つまり、この 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();
}
...
}