Skip to content

Instantly share code, notes, and snippets.

View longv's full-sized avatar
:shipit:
On a mission to be blazingly fast

Long Vu longv

:shipit:
On a mission to be blazingly fast
View GitHub Profile
@longv
longv / LifecycleAwareLazy.kt
Created February 11, 2021 12:34
Lifecycle-aware Lazy
fun <T> LifecycleOwner.lifecycleAwareLazy(initializer: () -> T): Lazy<T> = LifecycleAwareLazy(this, initializer)
private object UninitializedValue
class LifecycleAwareLazy<out T>(
private val owner: LifecycleOwner,
initializer: () -> T
) : Lazy<T>, Serializable, LifecycleObserver {
private var initializer: (() -> T)? = initializer