
Android documentation没有说明任何关于而且MODE_MulTI_PROCESS是安全的(安全方面)是否安全.
那么,这样安全吗?有没有理由不使用它?
解决方法:
此标志与安全性无关,但与访问可靠性无关.效率较低但尝试避免由访问底层文件的多个进程(来自同一应用程序)引起的问题.如果您不编写多进程应用程序,则不需要它.如果这样做,文档建议使用其他进程间通信.出于性能原因而不是安全性,文档建议不要使用它.
因此,一方面MODE_PRIVATE / MODE_WORLD_READABLE / MODE_WORLD_WRITEABLE和另一方面的MODE_MulTI_PROCESS是正交标志.如果您打开SharedPreferences:
> MODE_PRIVATE – >安全
> MODE_WORLD_READABLE – >不安全@H_301_12@> MODE_PRIVATE | MODE_MulTI_PROCESS – >安全@H_301_12@> MODE_WORLD_READABLE | MODE_MulTI_PROCESS – >不安全
并且当MODE_PRIVATE的值为0时:MODE_MulTI_PROCESS相当于MODE_PRIVATE | MODE_MulTI_PROCESS(即安全)
实际上,MODE_MulTI_PROCESS源代码中唯一的用法是在ContextImpl类中:
@OverrIDepublic SharedPreferences getSharedPreferences(String name, int mode) { SharedPreferencesImpl sp; synchronized (sSharedPrefs) { sp = sSharedPrefs.get(name); if (sp == null) { file prefsfile = getSharedPrefsfile(name); sp = new SharedPreferencesImpl(prefsfile, mode); sSharedPrefs.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;} 总结 以上是内存溢出为你收集整理的android – SharedPreferences的MODE_MULTI_PROCESS比MODE_PRIVATE更不安全全部内容,希望文章能够帮你解决android – SharedPreferences的MODE_MULTI_PROCESS比MODE_PRIVATE更不安全所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)