Warum Callbackflow auf dem Haupt -Thread ausgeführt wirdAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Warum Callbackflow auf dem Haupt -Thread ausgeführt wird

Post by Anonymous »

Ich verwende einen Callback -Fluss in meinem Code, um Daten aus der Firebase -Datenbank abzurufen. Hier ist mein Code < /p>
@ExperimentalCoroutinesApi
suspend fun getUserOrder() = callbackFlow{
println("Current Thread name is ${Thread.currentThread().name}")
databaseReference.child("Order").addValueEventListener(object : ValueEventListener{
override fun onCancelled(error: DatabaseError) {
Log.d("database error ",error.message)
channel.close(error.toException())
}

override fun onDataChange(snapshot: DataSnapshot) {
if (snapshot.exists()){
snapshot.children.forEach { data ->
data.children.forEach {newData->
newData.children.forEach { childData->
val userOrder = UserOrder(
childData.key!!,
childData.child("item_name").value as String,
childData.child("item_price").value as String,
childData.child("item_quantity").value as String,
childData.child("item_weight").value as String
)
offer(userOrder)
}
}
}
channel.close()
}
}
})
awaitClose()
}

//Activity class code
viewModel.viewModelScope.launch {
val time = measureTimeMillis {
viewModel.getOrder().collect {
println("Item id is ${it.item_id}")
}
}
println("Total time taken is $time")
}
< /code>
Daten werden abgerufen, aber im Haupt -Thread ausgeführt. Ich möchte es auf Hintergrund -Thread ausführen. Wie ist es möglich? Sag mir jemanden

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post