从数据库加载首选项

Load preferences from DB

我对每个实体都有一组 偏好片段(铃声、阈值...)。因此,我宁愿从 DB (ContentProvider) 加载相关内容,也不愿从 SharedPrefences 加载相关内容。 做这个的最好方式是什么? 有没有办法拦截 loading/saving 进程 from/to SharedPreferences?

如果可能的话,我想避免使用自定义布局,因为内置的首选项功能更快更容易实现。

从移动 UX(用户体验)的角度来看,这是一个非常糟糕的主意。由于与简单的键值存储访问相比,数据库访问会产生更大的 UI 延迟,因此用户体验将因此受到很大影响。 选择标准方法,编写一个方便的包装器 class,而不是在其中传递可以包含整个首选项的对象。

这个问题的目的是以最好的方式模仿内置首选项框架的外观。

感谢@pskink 指出如何通过实现您自己的 SharedPreferences 来完成此操作!

我最终以 this proposal 作为自定义布局的起点,因为我需要一些未提供的现成控件。