Android 跨應用共享資料01-SharedPreferences
阿新 • • 發佈:2019-01-13
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>
獲取端:
從上面我們可以看到,SharePreferences跨應用之間的資料共享,和普通的一個應用內部的資料共享,關鍵點是,藉助 createPackageContext()方法,獲取到共享端應用的context,進而根據這個context,就可以獲取到共享端共享的資料。<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>