Jav*_*fdr 24 android android-service sharedpreferences
我正在编写一个Android应用程序,其中包含UI和运行的单独进程.我想在主进程和我的应用程序中定义的服务之间共享简单信息,该服务在不同的进程中执行.为了这个目的,我发现使用AIDL进行进程间通信会很麻烦.
问题是:使用应用程序的共享首选项在这两个进程之间进行通信是否安全?这是:读取和写入相同的共享首选项.
我想知道它是否真的有效.在android开发人员中有关共享首选项的参考(http://developer.android.com/reference/android/content/SharedPreferences.html),他们声明:注意:目前这个类不支持跨多个进程使用.这将在稍后添加.但我不确切地知道这是什么意思.
谢谢你的帮助
Dav*_*ser 34
在Android <2.3中它可以工作.一个进程可以写入更改,另一个进程可以读取更改.读取/写入共享首选项文件(它们实际存储在文件中)的代码检查在读取/写入之前是否对文件进行了任何更改,并相应地更新其缓存版本.
在Android> 2.3中它可以工作,但你需要MODE_MULTI_PROCESS在调用时专门设置getSharedPreferences().
在Android 2.3中它被破坏,它不起作用:-(
请注意,API级别23(Android M)MODE_MULTI_PROCESS已弃用.
您可以查看https://github.com/hamsterksu/MultiprocessPreferences库,它提供类似SharedPreferences的API,用于通过ContentProvider访问SharedPreferences数据.谷歌从Android 6中删除了MODE_MULTI_PROCESS后,它看起来也是一个很好的替代品.
| 归档时间: | 
 | 
| 查看次数: | 11491 次 | 
| 最近记录: |