Kotlin单例实战

127 阅读1分钟

单例实战

双重检测

class WakeUtils private constructor() {

private val tag = "WakeUtils"

init {
    Log.d(tag,"init")
}

companion object {
    val instance: WakeUtils by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
        WakeUtils()
    }
}

}

静态加载

class WakeLockUtils private constructor() {

private final val tag = "WakeLockUtils"

init {
    Log.d(tag,"init")
}

companion object {
    val instance = Holder.holder
}

private object Holder {
    val holder = WakeLockUtils()
}

}