Android自定义SharedPreferences实现能否持久化到数据库?

mko*_*ske 3 android

我试图使用SharedPreferences接口的自定义实现将应用程序的首选项持久保存到数据库(而不是默认的XML).

为什么?我想使用PreferenceActivity构建UI 的便利性,但是这个应用程序将在多个设备上使用,因此用户设置的首选项需要在设备之间保留.

所以..我已经编写了实现,但无法弄清楚如何将特定的SharedPreference与a相关联PreferenceActivity.我知道使用getSharedPreferences(),但我怎么能覆盖呢?我能SharedPreferences以某种方式注册我吗?我没有在API中看到任何内容来执行此操作.

或者......如果我发现这一切都错了,请告诉我.谢谢.

ina*_*ruk 7

我前段时间一直在研究这个问题.但是出于不同的原因.

我发现它PreferenceActivity是高度耦合的PreferenceManager,它使用PreferenceManager.getDefaultSharedPreferences()深层内部来获取SharedPreference实例.并且没有办法在内部替换自定义PreferenceManagerSharedPreference实例PrefernceActivity.

我发现Preference框架不灵活,扩展或更改默认行为非常困难,有时甚至是不可能的.但我的猜测是,这个框架的设计者将"易用性"作为他们的首要任务,而不是可扩展性和灵活性.这是可以理解的.