Sie*_*yer 2 android kotlin android-room
我有一个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)
}
Run Code Online (Sandbox Code Playgroud)
这有效:
siteRepository.getSite().observe(activity, Observer<Site> {
// `it` is instance of Site, working as intended
})
Run Code Online (Sandbox Code Playgroud)
这不会:
Thread {
val site = siteRepository.getSiteSync()
// site is null
}.start()
Run Code Online (Sandbox Code Playgroud)
没关系,我使用的是Repository而不是ViewModel,只是一个例子。
知道为什么吗?
| 归档时间: |
|
| 查看次数: |
4912 次 |
| 最近记录: |