Android 跨应用共享数据01-SharedPreferences
Android 有四大存储方式:sqlite 、File、SharedPreferences、ContentProvider,而说到跨应用之间的数据共享,很多人可能会想到用ContentProvicer,不过个人觉得ContentProvider还是有点麻烦,如果可以,不妨试试SharedPreferences。
下面主要讲解使用SharePreferences跨应用共享数据的用法,关于Android四大存储方式,有兴趣的,可以看下之前的博文: 点击打开链接
共享端:
<span style="font-size:18px;">SharedPreferences.Editor editorResolution;
String SP_CONFIG = "recording";
String resolution_preferences_key = "resolution_key";
editorResolution = getSharedPreferences(SP_CONFIG,MODE_WORLD_READABLE).edit(); //CSContant.SP_CONFIG 根据自己需要,设置唯一标识
editorResolution.putString(resolution_preferences_key, resolutionChoice).commit();</span></span>
获取端:
<span style="font-size:18px;">String RECORDING_PACKAGE_NAME = "com.android.recording"; //共享端 包名
String SP_CONFIG = "recording";
String resolution_preferences_key = "resolution_key";
try {
Context context = createPackageContext(RECORDING_PACKAGE_NAME,CONTEXT_IGNORE_SECURITY);
SharedPreferences pref = context.getSharedPreferences(SP_CONFIG,MODE_MULTI_PROCESS);
String resolution = pref.getString(resolution_preferences_key,CSContant.DURATION_3MINS);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}</span>
从上面我们可以看到,SharePreferences跨应用之间的数据共享,和普通的一个应用内部的数据共享,关键点是,借助
createPackageContext()方法,获取到共享端应用的context,进而根据这个context,就可以获取到共享端共享的数据。