Tag: KOTLIN-COROUTINES
He creado toda una aplicación en Jetpack Compose. Sin embargo, el rendimiento en el Lazy Column es bastante malo y no tiene sentido. El Lazy Column debería ser el reemplazo de RecyclerView, pero RecyclerView funciona mucho mejor en este momento. Hice un Lazy Column con encabezados y Lazy Rows como . . . Read more
Tengo una API basada en callbacks como esta: class CallbackApi { fun addListener(callback: Callback) { // todo } fun removeListener(callback: Callback) { // todo } interface Callback { fun onResult(result: Int) } } y una función de extensión que convierte la API en un flujo frío: fun CallbackApi.toFlow() = callbackFlow<int> . . . Read more
Estoy enviando una solicitud HTTP con Kotlin y obtengo este error. Error: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx/xxx.android.ui.xxx}: android.os.NetworkOnMainThreadException Información adicional: La solicitud GET debe funcionar primero. Porque el proceso continúa según la respuesta del URL. Mi código: override fun onCreate(savedInstanceState: Bundle?) { setTheme(R.style.AppTheme_MainActivity) super.onCreate(savedInstanceState) val request = Request.Builder() .url(“https://publicobject.com/helloworld.txt”) . . . Read more
Tengo el siguiente código: private fun filterCarouselItems(loggedInFilter: Boolean) { CoroutineScope(Dispatchers.IO).launch { if (loggedInFilter) filteredCarouselItems = carouselItems.filter { it.visible == CarouselVisibilityEnum.LOGGEDIN.visibility || it.visible == CarouselVisibilityEnum.BOTH.visibility } as ArrayList<CarouselItem> else { filteredCarouselItems = carouselItems.filter { it.visible == CarouselVisibilityEnum.LOGGEDOUT.visibility || it.visible == CarouselVisibilityEnum.BOTH.visibility } as ArrayList<CarouselItem> } withContext(Dispachers.Main) { notifyDataSetChanged() } } } . . . Read more
En un ViewModel típico de Android, podemos crear fácilmente un LiveData Restorable utilizando la siguiente línea de código: val liveData = savedStateHandle.getLiveData<string>(“SomeKey”) Cada vez que se establece un valor en el LiveData, se guarda automáticamente y puede restaurarse. Sin embargo, si utilizamos el constructor de coroutines liveData (es decir, https://developer.android.com/topic/libraries/architecture/coroutines#livedata), . . . Read more