我在我的应用程序中使用了几个SharedPreferences用于存储数据。
有一些首选项在许多活动中都被使用。
我知道SharedPreferences内部由一个Map支持,以便快速读取和写入到SD卡当设置被更改时。
如果一个sharedpreference被很多活动使用,我想知道哪种方法更好:
- 在每个活动中使用活动上下文实例化它。
- 在每个活动中实例化它,但使用应用程序上下文。
- 将其放入例如Application类中,并仅在那里实例化它,类似于单例。
如果我使用第1种解决方案,每个活动是否有一个sharedpreference对象?当活动被销毁时,sharedpreference的内部map是否会被销毁?
如果我使用第2种解决方案,尽管我在每个活动中调用getSharedPreferences,是否只有一个实例?并且内部映射是否在应用程序处于活动状态的情况下保持在内存中?
希望有人知道Android如何在内部处理这个问题。