Intereting Posts
Как написать функции расширения в Котлин? Почему этот способ случайного создания графика несправедлив? Авторизация Spotify Code отклоняется за плохие учетные данные, несмотря на то, что отправлен действительный токен JDK требуется для Kotlin? Предупреждение безопасности Kotlin Null Неожиданные токены (используйте, чтобы разделить выражения на одной строке) Могу ли я написать sampleVideoView? = findViewById <VideoView> (R.id.videoView) в Котлине? Kotlin – Использование Realm Module в android Android Room – простой запрос выбора – не удается получить доступ к базе данных в основной теме Как получить статус доставки сообщения с помощью smack? Обновлено до Android Studio 3.0. Получение ошибки «Kotlin не настроено» Как сделать возвращаемый тип функции переопределения одного выражения для Unit? Когда использовать методы расширения? Эквивалент текста для ImageView запустить AsyncTask второй раз Kotlin mutableMap foreach

Номер Android: синхронные запросы возвращают null

У меня есть Site и соответствующий SiteDao :

 @Dao interface SiteDao { @get:Query("SELECT * FROM site WHERE uid = 1 LIMIT 1") val site: LiveData<Site> @get:Query("SELECT * FROM site WHERE uid = 1 LIMIT 1") val getSiteSync: Site @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(context: Site) } 

Это работает:

 siteRepository.getSite().observe(activity, Observer<Site> { // `it` is instance of Site, working as intended }) 

Это не означает:

 Thread { val site = siteRepository.getSiteSync() // site is null }.start() 

Nevermind, что я использую репозиторий вместо ViewModel , просто пример.

Любая идея почему?

Номер не позволяет синхронные запросы по умолчанию.

Чтобы добиться этого, вы должны вызвать вызов allowMainThreadQueries при инициализации базы данных.

Это спроектировано таким образом, потому что выбор базы данных должен соблюдаться для изменений и немедленно не получать.