AppDataBase.kt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.yingyangfly.baselib.db
  2. import android.content.Context
  3. import androidx.room.Database
  4. import androidx.room.Room
  5. import androidx.room.RoomDatabase
  6. @Database(entities = [QuestionsBean::class, DoctorBean::class, VoicePlayerBean::class], version = 1)
  7. abstract class AppDataBase : RoomDatabase() {
  8. abstract fun getQuestionsDao(): QuestionsDao
  9. abstract fun getDoctorsDao(): DoctorDao
  10. abstract fun getVoicePlayerDao(): VoicePlayerDao
  11. companion object {
  12. @Volatile
  13. private var sInstance: AppDataBase? = null
  14. private const val DATA_BASE_NAME = "hcp_pad.db"
  15. @JvmStatic
  16. fun getInstance(context: Context): AppDataBase? {
  17. if (sInstance == null) {
  18. synchronized(AppDataBase::class.java) {
  19. if (sInstance == null) {
  20. sInstance = createInstance(context)
  21. }
  22. }
  23. }
  24. return sInstance
  25. }
  26. private fun createInstance(context: Context): AppDataBase {
  27. return Room.databaseBuilder(
  28. context.applicationContext,
  29. AppDataBase::class.java,
  30. DATA_BASE_NAME
  31. ).allowMainThreadQueries()
  32. .build()
  33. }
  34. }
  35. }