Android实现跨程序数据共享,Android 跨应用共享数据01-SharedPreferences

Android  有四大存储方式:sqlite 、File、SharedPreferences、ContentProvider,而说到跨应用之间的数据共享,很多人可能会想到用ContentProvicer,不过个人觉得ContentProvider还是有点麻烦,如果可以,不妨试试SharedPreferences。

下面主要讲解使用SharePreferences跨应用共享数据的用法,关于Android四大存储方式,有兴趣的,可以看下之前的博文: 点击打开链接

共享端:

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();

获取端:

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();

}     从上面我们可以看到,SharePreferences跨应用之间的数据共享,和普通的一个应用内部的数据共享,关键点是,借助

createPackageContext()方法,获取到共享端应用的context,进而根据这个context,就可以获取到共享端共享的数据。