Jetpack LiveData 功能扩展,可自由选择是否接收黏性事件,也可自由选择是否扩大 observe 时的生命周期范围
导入依赖:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
dependencies {
implementation("io.github.leavesczy:event-livedata:latestVersion")
}
使用:
val eventLiveData = EventLiveData<String>()
//不接收黏性消息
//在 onStart 之后和 onStop 之前均能收到 Observer 回调,和 LiveData 一致
eventLiveData.observe(lifecycleOwner) {
}
//不接收黏性消息
//在 onCreate 之后和 onDestroy 之前均能收到 Observer 回调
eventLiveData.observe(lifecycleOwner, false) {
}
//不接收黏性消息
eventLiveData.observeForever {
}
//接收黏性消息
//在 onStart 之后和 onStop 之前均能收到 Observer 回调,和 LiveData 一致
eventLiveData.observeSticky(lifecycleOwner) {
}
//接收黏性消息
//在 onCreate 之后和 onDestroy 之前均能收到 Observer 回调
eventLiveData.observeSticky(lifecycleOwner, false) {
}
//接收黏性消息
eventLiveData.observeForeverSticky {
}
关联的文章: