繁体   English   中英

Android将数据保存到应用程序

[英]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();  
 }

SharedPreference仅适用于SharedPreferences支持的对象。 对于任何长期存储的对象,您必须沿着某种类型的序列化路线前进。 我猜你已经阅读了文档中数据存储页面 从那里我建议你阅读有关内部存储的内容 如果您不想处理Java的可序列化接口,那么我建议您查看XStream

XStream与内部存储相结合可提供您所需的解决方案。

如果您正在寻找维持全局应用程序状态而不使用序列化,数据库等的永久性点,请使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM