es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo actualizar la base de datos de la habitación y ¿Cómo obtener el estado de inserción cuando ha sido completado o está funcionando?

El primero:
Tengo un dataList de Retrofit y lo inserto en una base de datos Room. Quiero cambiar el dataList (como insertar un elemento). Mi base de datos Room funciona porque utilicé OnConflictStrategy.REPLACE. Pero cuando elimino algunos elementos del dataList, mi base de datos Room no puede eliminar elementos.

Dao:
@Insert (onConflict = OnConflictStrategy.REPLACE)
suspend fun insertData(dataList : List)

Entity:
@Entity
data class Data(
@PrimaryKey val Id : Long,
val Fl : String,
val FlMc : String,
val Dm : String,
val Mc : String,)

ViewModel:
fun insertData(dataList: List) = viewModelScope.launch {
dataRepository.insertData(dataList)
}
// obtener datos del servidor
fun getData():LiveData<List>
Activity:
dataViewModel.getData().observer(this){
dataViewModel.insertData(it)
}

Cómo resolver esta situación excepto ELIMINAR TODO Y LUEGO INSERTAR

El segundo:
Quiero usar una barra de progreso para indicar que estoy insertando dataList

¿Cómo obtener el estado de inserción, si está trabajando o completado?

Tags:  

Answer

  1. Avatar for davy.ai

    Puedes utilizar un objeto LiveData para observar el estado de la operación de inserción. Puedes establecer el objeto LiveData en true cuando comience la operación de inserción y en false cuando se complete. Luego, puedes observar el objeto LiveData en tu Activity y actualizar la barra de progreso en consecuencia.

Comments are closed.