Android 不同應用通過SharedPreference實現共享資料
Android不同應用之間資料的共享有許多方式,但是我覺得還是使用sharedPreference比較簡單和輕量級。如果程式B想要訪問程式A的sharedPreference可以通過下面的語句來實現:
-
try {
-
AContext =createPackageContext(A_PACKAGE_NAME,
-
Context.CONTEXT_IGNORE_SECURITY);
-
} catch (NameNotFoundException e) {
-
Log.e(TAG, "find
package error!");
-
}
-
SharedPreferences sp = AContext.getSharedPreferences(PREFERENCES_NAME,
-
Context.MODE_WORLD_READABLE);
- sp.getInt(PREF_NAME, 0);
當然在A程式裡建立SharedPreference的時候也需要使用Context.MODE_WORLD_READABLE屬性。另外SharedPreference還有Context.MODE_WORLD_WRITEABLE屬性。根據SDK的解釋,就是允許別的應用程式來對SharedPreference進行寫操作。但是在實際程式實驗中發現即使加上了這個屬性,寫操作也是無法成功的,會提示一個錯誤:Couldn't rename file /data/data/....PREFERENCES_NAME.XML
to /data/data/....PREFERENCES_NAME.XML.bak。這個錯誤的原因應該是很明確了,程式B在程式A的目錄裡面沒有建立和重新命名檔案的許可權。
那麼到底要怎麼樣才能讓程式B在程式A的SharedPreferences裡面寫東西呢,其實很簡單,在manifest.xml裡面將兩個應用程式的android:sharedUserId屬性設為相同的就可以了。而且SharedPreference的屬性也不需要Context.MODE_WORLD_WRITEABLE了,只需要Context.MODE_PRIVATE也可以完成讀寫操作。
相關文章
- 通過 Swoole\Table 實現 Swoole 多程式資料共享
- 通過redis實現session共享RedisSession
- 用SharedPreference儲存資料
- Android跨介面共享資料——LiveData應用AndroidLiveData
- Android SharedPreference最佳實踐Android
- Linux下通過NFS共享資料夾LinuxNFS
- 如果通過流資料實現實時分析?
- Unity應用架構設計 ViewModel之間實現共享資料Unity應用架構View
- Android之SharedPreference輕量級資料儲存Android
- 通過Vue的過濾器實現資料的資料脫敏Vue過濾器
- Vuex如何實現資料共享Vue
- 使用過載方法實現不同型別資料的計…型別
- 用NSConnection實現不同程式間的通訊
- Spring Boot應用中如何動態指定資料庫,實現不同使用者不同資料庫的場景Spring Boot資料庫
- 儲存資料之SharedPreference
- 通過Android應用更改系統時間Android
- iOS KeyChain 應用間共享資料iOSAI
- Android通過WindowManager實現懸浮框Android
- Android 通過JNI實現守護程式Android
- Restcloud ETl資料通過時間戳實現增量資料同步RESTCloud時間戳
- 驅動開發:透過應用堆實現多次通訊
- 用react-redux實現react元件之間資料共享ReactRedux元件
- Webview獨立程式並通過AIDL實現資料通訊WebViewAI
- 教你如何運用python實現不同資料庫間資料同步功能Python資料庫
- MVP實現Android應用層開發原理及過程MVPAndroid
- android開發透過wireshark實現flutter應用抓包AndroidFlutter
- Android通過Wifi來除錯你的應用AndroidWiFi除錯
- Android通過startService實現批量下載示例Android
- 通過手勢實現Android ImageView 縮放AndroidView
- Android 資料儲存知識梳理(3) SharedPreference 原始碼解析Android原始碼
- Android通過繼承Binder類實現多程式通訊Android繼承
- Ubuntu 配置 samba 實現資料夾共享UbuntuSamba
- 透過資料結構實現簡易通訊錄資料結構
- 通過原生js實現資料的雙向繫結JS
- JWT實現過程及應用JWT
- Tomcat通過Redis實現session共享的完整部署記錄TomcatRedisSession
- Tomcat通過Memcached實現session共享的完整部署記錄TomcatSession
- 通過佇列實現棧OR通過棧實現佇列佇列