J'ai un problème étrange, j'ai une activité de connexion initiale dans Android, tandis que sur onCreateMethod de celui-ci, est déclenché, où j'ai appelé par Object classe qui est un objet statique nommé BaseData. J'obtiens une étrange erreur nulle, alors que c'est un objet. Trouvé que les objets sont paresseux chargés dans Kotlin qui prend un certain temps, comment puis-je le forcer à charger d'abord et être disponible lorsque mon activité de connexion Landing principal est créé.Kotlin Objets de chargement de retard
class LoginActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
if(BaseData.userId == “”) { //At this step BaseData itself comes as null, so app goes blank
//Do something
}
}
}
object BaseData : Observable() {
var initialSyncDone:Boolean = false
var isOffline:Boolean = true
var userId: String = “”
init{
// I have logic to load userId from shared preferences
}
}
'// A cette étape BaseData lui-même vient comme nulle, si l'application va blank' - si BaseData était nulle,' BaseData.userId' provoquerait NullPointerException. Le chargement de l'objet paresseux de Kotlin est basé sur le chargement de la classe JVM - vous ne remarquerez pas ce labyrinthe du tout. –