我正在使用多个 SharedPreferences 在我的应用程序中存储数据。一些偏好用于很多活动。
我知道 SharedPreferences 在内部由映射支持以实现快速读取访问,并在更改设置时写入 sdcard。
我想知道如果许多活动都访问共享首选项,哪种方式更好:
- 使用活动上下文在每个活动中实例化它。
- 在每个活动中实例化它,但使用应用程序上下文。
- 将它放在例如Application 类中并在那里只实例化一次,类似于单例。
如果我使用 1. 解决方案,是否每个活动都有一个 sharedpreference 对象?当 Activity 被销毁时,sharedpreference 的内部映射会被销毁吗?
如果我使用 2. 解决方案,尽管我在每个活动中调用 getSharedPreferences,但是否只有一个实例?只要应用程序还活着,内部映射是否会在内存中?
希望有人知道Android如何在内部处理它。