Почему данные моей базы данных номеров не сохраняются?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему данные моей базы данных номеров не сохраняются?

Сообщение Anonymous »

У меня есть приложение для Android, которое использует базу данных комнат и Dagger. Я перепробовал все ответы, которые нашел в Интернете, и это мое последнее средство, поскольку я решаю эту проблему уже вторую неделю.
Мои настройки:

Код: Выделить всё

com.example.app
|-configurations
|-AppComponent.kt
|-AppDB.kt
|-AppModule.kt
|-MyApp.kt

@Singleton
@Component(modules = [AppModule::class])
interface AppComponent {
fun inject(baseViewModel: BaseViewModel)
}

@Database(entities = [
User::class
], version = 1, exportSchema = true)

abstract class AppDB : RoomDatabase() {
abstract fun userRepository(): IUserRepository

companion object{

@Volatile
private var db_instance: AppDB? = null

@Synchronized
fun getAppDBInstance(context : Context): AppDB {

return db_instance ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
AppDB::class.java,
"TransitPayDB.db3"
).allowMainThreadQueries()
.build()
db_instance = instance
instance
}

}

}
}

class MyApp: Application() {

private lateinit var appComponent: AppComponent

override fun onCreate() {
super.onCreate()
appComponent = DaggerAppComponent.builder().appModule(AppModule(this)).build()
}

fun getAppComponent(): AppComponent {
return appComponent
}
}

@Module
class AppModule(private val application: Application) {

@Singleton
@Provides
fun getUserRepo(appDB: AppDB): IUserRepository {
return appDB.userRepository()
}

@Singleton
@Provides
fun getRoomDBInstance(context: Context): AppDB {
return AppDB.getAppDBInstance(context)
}

@Singleton
@Provides
fun provideAppContext(): Context {
return application.applicationContext
}

}
И в своем Манифесте я добавил это:

Код: Выделить всё

android:name=".configurations.MyApp"
У меня нормальная транзакция, когда телефон отключен от отладчика. а также я могу видеть базы данных и данные во время отладки. но моя проблема в том, что когда я снова нажимаю "Отладка", все данные исчезают, и мне приходится заново заполнять все тестовые данные.
что-то не так с моими конфигурациями?кстати, именно так я внедряю свои репозитории:

Код: Выделить всё

open class BaseViewModel(application: Application) : AndroidViewModel(application) {

@Inject lateinit var userRepository: IUserRepository

init {
(application as MyApp).getAppComponent().inject(this)
sharedUserId = sharedPrefs.getInt("userId",0)
sharedCompanyId = sharedPrefs.getInt("companyId",0)
sharedRoleId = sharedPrefs.getInt("roleId",0)
sharedFullName = sharedPrefs.getString("fullName","")
sharedApiToken = sharedPrefs.getString("apiToken","")
}

}
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/787 ... persistent
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»