[英]Android Saving Data to application
在android中是否有某种方法可以将对象保存到可以通过同一应用程序的不同活动访问它们的位置? 无需序列化或包裹对象?
在活动之间传递对象的两种最佳方法是在扩展Application
的类中使用静态字段,或者(可能最好)使用服务并让需要共享对象的活动绑定到它。
但要注意在Activities
使用静态字段,因为它们可以随时销毁,因此不是线程安全的,可能是灾难性的。
SharedPreferences
是要走的路。 把它放在活动中
public void saveSetting(String settingName, String value){
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
Editor ed = pref.edit();
ed.putString(settingName, value);
ed.commit();
}
如果您正在寻找维持全局应用程序状态而不使用序列化,数据库等的永久性点,请使用Service或Application类。 Android开发人员发现此问题的一般提示。
您可以使用SharedPreferences或创建Singleton类。 我使用singleton类来控制属性的生命周期。 如果您希望保证持久性,请将数据存储在sqllite数据库中。
使用Singleton,您可以存储自定义对象。
public class MySingleton {
private static final AlphResourceSet INSTANCE = new MySingleton ();
private MySingleton() {}
public static MySingleton getInstance() {
return INSTANCE;
}
// all your getters/setters for your variables
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.