zio*_*amt 20 java android sharedpreferences
我有一个应用程序正在使用SharedPreferences.一个只是存储应用程序版本以检查更改日志的更新,另一个包含一些布局信息,clear()在用户选择时调用.我终于设法开始PreferenceFragment工作并注意到了一个趋势,所以我想在我偏爱之前我可能会问这个问题(尽管我认为我已经足够了).
我尽力搜索并没有特别提到问题,只是可以有倍数.
我有点担心PreferenceManager.getDefaultSharedPreferences()抓错了pref,但我可能只是误解了用法.
我可以从我的活动中想到的唯一相关代码:
SharedPreferences storedVer = getSharedPreferences(VER_NUM, 0);
SharedPreferences savedLayout = getSharedPreferences(LAYOUT_SAVE, 0);
Run Code Online (Sandbox Code Playgroud)
tas*_*iac 15
这一点都不错.我认为情况正好相反.我认为不同的行为应该使用不同的sharedPreference文件.
.getDefaultSharedPreferences()使用默认com.company.packagename.xml文件.其他人创建自己的文件.
sharedPreference's在我的脑海中出现了使用多个的以下优点.
sharedPreference要备份和还原的文件.sharedPreference其中包含该用户私有值的文件.您可能不想删除其他一些.根据我的经验,SharedPreferences我注意到以下几点:
1)始终使用try来使您的SharedPreference名称和属性名称在整个设备上唯一。
2)请勿使用您的名称,SharedPreference例如“ myPreference”,“ preference”,“ appPreference” ...等。使用your PackageName作为SharedPreference名称的唯一标识符。
例:
SharedPreferences preferences = getSharedPreferences(Context.getPackageName(), Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
3)通过将属性名称与程序包名称连接起来,还可以为属性使用唯一的键。
例:
Editor editor = sharedpreferences.edit();
boolean isAdminKey = Context.getPackageName()+"admin";
editor.putString(isAdminKey , "value");
editor.commit();
Run Code Online (Sandbox Code Playgroud)
4)用1编辑多个Key值没有问题commit()。
5)MODE_PRIVATE在创建首选项时使用,以防止其他应用程序读取您的SharedPreferences。例如,请参阅步骤2
6)不要依赖SharedPreferences100%,因为如果用户Clear Data在“应用程序信息”屏幕上按按钮,它将被清除。否则,请在中创建文件ExternalDirectory()或将您的信息发送到服务器。
| 归档时间: |
|
| 查看次数: |
6005 次 |
| 最近记录: |