4 Comments

  1. 阅读后加深了我对SharedPreference的理解。项目中一直是用 PreferenceManager.getDefaultSharedPreferences(Context context), 来获取SharedPreferences。原来其实还是调用了getSharedPreferences(String, int),只不过系统自动把default package name 和MODE_PRIVATE 作为参数放进去了。

    附一下Android source code:

    public static SharedPreferences getDefaultSharedPreferences(Context context) {
    return context.getSharedPreferences(getDefaultSharedPreferencesName(context),
    getDefaultSharedPreferencesMode());
    }

    private static String getDefaultSharedPreferencesName(Context context) {
    return context.getPackageName() + “_preferences”;
    }

    private static int getDefaultSharedPreferencesMode() {
    return Context.MODE_PRIVATE;
    }

    1. Author

      没错,也可以自己setSharedPreferencesName()来改变名称,设计得挺灵活的。
      关于PreferenceManage,我是打算在下一篇写android.preference.Preference的时候写。
      开发Android比开发iOS好的地方在于开源,什么不懂的读源码就能知道的更清楚。光看文档有时候总是很不明确,要是文档缺失就更惨了。

      1. 同感,从IOS转到Andriod后切实感受到了开源的好处。有时候文档里不是太清楚的描述,看了源码就清楚了。而且花些时间看源码还能提高自己写代码的思路和质量。


Leave a Reply

Your email address will not be published. Required fields are marked *