Как вынести функцию в отдельный поток
У меня есть функция getHistoryDao которую нужно вынести в отдельный поток:
fun getHistoryDao() : HistoryDao {
synchronized(HistoryDataBase::class.java) {
if (db == null) {
if (appInstance == null) throw IllegalAccessException(" APP must not be null")
db = Room.databaseBuilder(
appInstance!!.applicationContext,
HistoryDataBase::class.java,
DB_NAME
)
.build()
}
}
return db!!.historyDao()
}
}
Использовал Thread, выдаёт NullPointerException
fun getHistoryDao() : HistoryDao {
synchronized(HistoryDataBase::class.java) {
Thread{
if (db == null) {
if (appInstance == null) throw IllegalAccessException(" APP must not be null")
db = Room.databaseBuilder(
appInstance!!.applicationContext,
HistoryDataBase::class.java,
DB_NAME
).build()
}
}.start()
}
return db!!.historyDao()
}