Khi ứng dụng của tôi chuyển sang nền, các đối tượng (tĩnh và đơn) của tôi sẽ bị xóa. Vì vậy, tôi đã cố gắng lưu trữ các đối tượng này trong Ngữ cảnh áp dụng. Tôi đang sử dụng mã sau đây.Lưu trữ các đối tượng trong ApplicationContext
Accounts.create (getApplicationContext()) sẽ được gọi một lần để lưu trữ cá thể tài khoản.
Có thể (đáng tin cậy) để lưu trữ các đối tượng trong ngữ cảnh ứng dụng không? Tôi không chắc chắn cách sau đây là đúng hay không. vui lòng hướng dẫn ..
public class Init extends Application {
private Hashtable<Object, Object> globalStore = new Hashtable<Object, Object>();
public void putToGlobalStore(Object key, Object value) {
globalStore.put(key, value);
}
public Object takeFromGlobalStore(Object key) {
return this.globalStore.get(key);
}
public void removeFromGlobalStore(Object key) {
this.globalStore.remove(key);
}
public boolean containsInGlobalStore(Object key) {
return this.globalStore.containsKey(key);
}
}
public class Accounts {
protected Accounts(String name, Context context) {
Init init = (Init) applicationContext;
init.putToGlobalStore(name, this);
}
private static Init applicationContext;
public static void create(Context context) {
if (context instanceof Application)
applicationContext = (Init) context;
else
applicationContext = (Init) context.getApplicationContext();
if (applicationContext.containsInGlobalStore(GLOBAL_NAME))
Logger.log("Warning " + GLOBAL_NAME
+ " is already created. This will remove all old datas");
new Accounts(GLOBAL_NAME, applicationContext);
}
private static final String GLOBAL_NAME = "accounts";
public static Accounts getInstance() {
try {
return (Accounts) applicationContext
.takeFromGlobalStore(GLOBAL_NAME);
} catch (Exception e) {
Logger.log("GLOBAL_NAME Lost");
return null;
}
}
Xin vui lòng trợ giúp.
Cảm ơn bạn đã trả lời. Những gì tôi cần là lưu trữ dữ liệu thông qua ứng dụng khi nó đang chạy –