1. 程式人生 > >Android 跨應用共享資料01-SharedPreferences

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,就可以獲取到共享端共享的資料。