Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.acmenxd:sptool:2.0'
}
dependencies {
implementation("com.github.acmenxd:sptool:2.0")
}
<dependency>
<groupId>com.github.acmenxd</groupId>
<artifactId>sptool</artifactId>
<version>2.0</version>
</dependency>
libraryDependencies += "com.github.acmenxd" % "sptool" % "2.0"
:dependencies [[com.github.acmenxd/sptool "2.0"]]
Android系统SharedPreferences进行的封装
如要了解功能实现,请运行app程序查看控制台日志和源代码!
apk下载路径 : <a href="https://github.com/AcmenXD/Resource/blob/master/apks/SpTool.apk">SpTool.apk</a>
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
compile 'com.github.AcmenXD:SpTool:2.0'
支持自定义加密监听
在Application中配置
/**
* 设置加解密回调
* * 不设置或null表示不进行加解密处理
*/
SpManager.setEncodeDecodeCallback(new SpEncodeDecodeCallback() {
@Override
public String encode(String pStr) {
return pStr;
}
@Override
public String decode(String pStr) {
return pStr;
}
});
/**
* 设置全局Sp实例,项目启动时创建,并通过getCommonSp拿到,项目中只有一份实例
*/
SpManager.CommonSp = spAll;
/**
* 设置Context对象
* * 必须设置,否则无法使用
*/
SpManager.setContext(this);
/**
* 设置监听
*/
SpTool sp = SpManager.getSp(BaseApplication.SP_Config);
SpTool spDevice = SpManager.getSp(BaseApplication.SP_Device);
SpChangeListener sp_listener1 = sp.registerOnChangeListener(new SpChangeListener() {
@Override
public void onChanged(String pKey) {
Log.e("AcmenXD", "sp_listener1发生改变:" + pKey);
}
});
SpChangeListener sp_listener2 = sp.registerOnChangeListener(new SpChangeListener() {
@Override
public void onChanged(String pKey) {
Log.e("AcmenXD", "sp_listener2发生改变:" + pKey);
}
});
SpChangeListener spDevice_listener1 = spDevice.registerOnChangeListener(new SpChangeListener() {
@Override
public void onChanged(String pKey) {
Log.e("AcmenXD", "spDevice_listener1发生改变:" + pKey);
}
});
SpChangeListener spDevice_listener2 = spDevice.registerOnChangeListener(new SpChangeListener() {
@Override
public void onChanged(String pKey) {
Log.e("AcmenXD", "spDevice_listener2发生改变:" + pKey);
}
});
/**
* 修改数据
*/
sp.putString("change1", "test1");
sp.putString("change1", "test2");
spDevice.putString("change2", "test1");
spDevice.putString("change2", "test2");
/**
* 注销监听
*/
sp.unregisterOnChangeListener(sp_listener1);
// sp.unregisterOnChangeListener(sp_listener2);
sp.unregisterOnChangeListenerAll();
spDevice.unregisterOnChangeListener(spDevice_listener1);
// spDevice.unregisterOnChangeListener(spDevice_listener2);
spDevice.unregisterOnChangeListenerAll();
// ---------------------------------Listener End
/**
* 初始化数据
*/
Set<String> sets = new HashSet<>();
sets.add("test1");
sets.add("test2");
/**
* 写入数据
*/
sp.putString("string", "test string");
sp.putInt("int", 100);
sp.putFloat("float", 100.11f);
sp.putLong("long", 123456789123456789l);
sp.putBoolean("boolean", true);
sp.putStringSet("set", sets);
/**
* 读取数据
*/
String s = sp.getString("string", "");
int i = sp.getInt("int", -1);
float f = sp.getFloat("float", -1f);
long l = sp.getLong("long", -1);
boolean b = sp.getBoolean("boolean", false);
Set<String> set = sp.getStringSet("set", new HashSet<String>());
/**
* 读取所有数据
*/
Map<String, ?> map = sp.getAll();
gitHub : https://github.com/AcmenXD 如对您有帮助,欢迎点Star支持,谢谢~
技术博客 : http://blog.csdn.net/wxd_beijing