- 如果内存中已经存在该数据,在无需去文件中读取,加快读取速度
- 缓存数据可以删除
- 基于kotlin委托,写法简单,无需增加其他额外命名,可以设置默认值
- 支持一下数据形式:Int, Long, Float, String, Boolean, StringSet
- 可以监听数据变化,并回调监听动作
监听可以移除;另外如果设置新的监听会替换掉前一个监听
- 基于LruCache进行内存缓存
- 基于SharedPreferences进行文件缓存
- 基于kotlin 委托进行数据变动监听
In your root path build.gradle
:
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
In your Application Dir build.gradle
:
dependencies {
implementation 'com.github.cat-x:LStorage:0.20'
}
- 在使用前你应该进行初始化
你可以在Application 或者 Activity等具有Context的组件中初始化,只需要调用1次即可
override fun onCreate() {
super.onCreate()
LStorage.init(this)
}
- 函数调用
- 包含监听
val tappingEnabled by LStorage.SP.preferenceBoolean(true)
val content by LStorage.SP.preferenceString(初始数据")
//你也可以缓存及其监听Int, Long, Float, String, Boolean, StringSet这些类型
//初始化数据同时开始监听
content.observeAndInit {
contentListenEditText.setText(it)
}
//设置监听
content.observe {/**处理变化*/ }
//设置数据
content.set("hello")
//获取数据
tappingEnabled.get()
//删除缓存
content.delete()
- 不包含监听
//设置数据
LStorage.SP.putString("contentCache", contentCacheEditText2.text.toString())
//获取数据
LStorage.SP.getBoolean("contentCacheBoo", false)
//删除缓存
LStorage.SP.delete()
- 支持深层次读入数据(从0.20开始)
//只需要将getXXX系列函数中的 参数readFromDisk 设置为 true即可
LStorage.SP.getString("key","defaultValue",readFromDisk = true)
如果你想自己定义一个命名的配置文件可以可以的
val data = LStorage("myLStorage")
data.putString("contentCache", contentCacheEditText2.text.toString())
你可以选用 SwitchLanguage 来进行APP语言的切换