最近项目中遇到了跨进程访问SharedPreferences的问题,当然在Android中并不建议用SharedPreferences,比较建议使用contentProvider或者aidl的方式来交互。
首先为了方便理解,暂时把两个应用分为Server端和client端
第一个问题就是想要跨进程访问sharedpreferences,server端在获取sharedPreferences对象时,需要一个int 值得mode,这时的mode就需要设置成
Context.MODE_MULTI_PROCESS|MODE_WORLD_READABLE
接着client端调用SharedPrefences,需要一个context上下文对象,上下文对象简单的理解就是当前软件运行的环境,所以需要获取server端的context,而不能拿client本地的context创建sharedpreferences对象。
获取server端context,需要调用本地context的方法,所以还需要本地context的一个对象:
Context c = null;
try {
c = context.createPackageContext("server端包名",
Context.CONTEXT_IGNORE_SECURITY);
} catch (PackageManager.NameNotFoundExce