@Database(entities = [CollectArticle::class,ReadPlanArticle::class,StudyProject::class,RecentSearch::class],version = 1 ,exportSchema = false)
abstract class AndroidDataBase : RoomDatabase() {
abstract fun getCollectDao() : CollectedDao // 用于收藏文章操作
abstract fun getReadPlanDao() : ReadPlanDao // 用于阅读计划操作
abstract fun getStudyProjectDao() : StudyProjectDao // 用于项目学习操作
abstract fun getRecentSearchDao() : RecentSearchDao // 用于最近搜索操作
companion object {
@Volatile
private var instence : AndroidDataBase? = null
fun getInstence(context: Context) : AndroidDataBase{
if (instence == null){
synchronized(AndroidDataBase::class){
if (instence == null){
instence = Room.databaseBuilder(context.applicationContext,AndroidDataBase::class.java,"WanAndroid")
.build()
}
}
}
return instence!!
}
}
}
1688e1ed69072fc25c9847ef4ab6924f.png
upport-28 或 AndroidX-1.0.0 起,Fragment 新增了 getViewLifecycleOwner 方法。顾名思义,它返回一个与 Fragment#mView 向匹配的 LifecycleOwner,可以在 onDestroyView 的时候走到 DESTROYED ,删除 onCreateView 中注册的 Observer, 保证了 add/remove 的成对出现。
当我们在 Fragment 中获取 lifecycleScope 时,切记要使用 ViewLifecycleOwner
网友评论