我是靠谱客的博主 欢呼墨镜,这篇文章主要介绍Android面试题-SharedPreferences源码分析,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
SharedPreferences sp = context.getSharedPreferences(spName, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString(key, (String) object); editor.commit();

源码分析

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
@Override public SharedPreferences getSharedPreferences(String name, int mode) { SharedPreferencesImpl sp; synchronized (ContextImpl.class) { if (sSharedPrefs == null) { sSharedPrefs = new ArrayMap<String, ArrayMap<String, SharedPreferencesImpl>>(); } final String packageName = getPackageName(); ArrayMap<String, SharedPreferencesImpl> packagePrefs = sSharedPrefs.get(packageName); if (packagePrefs == null) { packagePrefs = new ArrayMap<String, SharedPreferencesImpl>(); sSharedPrefs.put(packageName, packagePrefs); } // At least one application in the world actually passes in a null // name. This happened to work because when we generated the file name // we would stringify it to "null.xml". Nice. if (mPackageInfo.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.KITKAT) { if (name == null) { name = "null"; } } sp = packagePrefs.get(name); if (sp == null) { File prefsFile = getSharedPrefsFile(name); sp = new SharedPreferencesImpl(prefsFile, mode); packagePrefs.put(name, sp); return sp; } } if ((mode & Context.MODE_MULTI_PROCESS) != 0 || getApplicationInfo().targetSdkVersion < android.os.Build.VERSION_CODES.HONEYCOMB) { // If somebody else (some other process) changed the prefs // file behind our back, we reload it. This has been the // historical (if undocumented) behavior. sp.startReloadIfChangedUnexpectedly(); } return sp; }

源码可知

1) sSharedPrefs是一个静态的ArrayMap,表示一个包可以对应有一组SharedPreferences,并且直接映射文件名到SharedpreferencesImpl

复制代码
1
sSharedPrefs = new ArrayMap<String, ArrayMap<String, SharedPreferencesImpl>>();

最后

以上就是欢呼墨镜最近收集整理的关于Android面试题-SharedPreferences源码分析的全部内容,更多相关Android面试题-SharedPreferences源码分析内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部