InterProcessSharedPreferences Android 中跨进程的 SharedPreferences
解决 android 中的 SharedPreferences 不能跨进程读写的问题。
用法
Android Studio
选择添加:
compile project(':interprocesssharedpreferences')
或者
compile 'jone.common.android.data.sharedPreferences:interprocesssharedpreferences:1.0.0'
//如果获取不到,则加入 maven { url 'http://dl.bintray.com/sunjoner7/maven' }
在 AndroidManifest.xml 注册
<!--authorities 规则:应用的包名 + ".InterProcessContentProvider"-->
<provider
android:name="jone.common.android.data.sharedPreferences.InterProcessContentProvider"
android:authorities="jone.common.android.data.sharedPreferences.sample.InterProcessContentProvider"
android:enabled="true"
android:exported="true" />
Eclipse
自行 copy 源码 。
用法示例
普通读写
InterProcessSharedPreferences interProcessSharedPreferences = InterProcessSharedPreferences.getInstance(getApplication());
interProcessSharedPreferences.putString("testStr", edit_value.getText().toString()); //写入
interProcessSharedPreferences.getString("testStr", "empty"); //读取
interProcessSharedPreferences.remove("testStr"); //删除
监听
InterProcessSharedPreferences interProcessSharedPreferences = InterProcessSharedPreferences.getInstance(getApplication());
ISharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = new ISharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(ISharedPreferences sharedPreferences, String key) {
Log.e(TAG, "interProcessSharedPreferences--onSharedPreferenceChanged>>key: " + key + " value: " + sharedPreferences.getString(key, "empty"));
}
};
//监听(onCreate)
interProcessSharedPreferences.registerOnSharedPreferenceChangeListener(onSharedPreferenceChangeListener);
//取消监听(onDestroy 不需要监听时一定要取消监听)
interProcessSharedPreferences.unregisterOnSharedPreferenceChangeListener(onSharedPreferenceChangeListener);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论