Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

597
Vistas
Uso de RememberCoroutineScope() frente a LaunchedEffect

Contexto

En Jetpack compose, tenemos la opción de usar rememberCoroutineScope() así como usar el Composable LaunchedEffect para usar corrutinas/ejecutar funciones de suspensión (mostrar snackbars, etc.).

La convención que he adoptado hasta ahora es recordar un solo ámbito de rutina en la parte superior de mi árbol de composición y pasarlo a través de argumentos de función a los lugares donde se necesita. Esto parece vagamente una buena práctica, pero por otro lado está agregando ruido adicional a las firmas de mi función.

Preguntas

  1. ¿Hay alguna razón para preferir el uso de LaunchedEffect en lugar de rememberCoroutineScope() dentro de las funciones componibles?
  2. ¿Vale la pena el esfuerzo de crear/recordar un ámbito de corrutina solo una vez por árbol de composición, o debería simplemente llamar a rememberCoroutineScope() en cada función donde se inicia realmente una corrutina?
over 4 years ago · Hanz Gallego
2 Respuestas
Responde la pregunta

0

Use RememberCoroutineScope() cuando esté usando corrutinas y necesite cancelar y reiniciar la corrutina después de un evento.

Use LaunchedEffect() cuando esté usando rutinas y necesite cancelar y reiniciar la rutina cada vez que cambie su parámetro y no esté almacenado en un estado mutable.

over 4 years ago · Hanz Gallego Denunciar

0

Dejando mi entendimiento aquí:

Pregunta 1: LaunchedEffect debe usarse cuando desea que se realice alguna acción cuando se inicia su componible por primera vez. Por ejemplo, cuando desea solicitar algunos datos de su ViewModel o ejecutar algún tipo de animación...
rememberCoroutineScope , por otro lado, es específico para almacenar el alcance de Coroutine, lo que permite que el código inicie alguna función de suspend ... en mi humilde opinión, la única relación entre ellos es que también puede usar un LaunchedEffect para iniciar una coroutine...

Pregunta 2: Como puedes ver en los documentos, rememberCoroutineScope mantendrá la referencia del alcance de la rutina en un punto específico de la composición. Por lo tanto, si un componible determinado se elimina de la recomposición, esa corrutina se cancelará automáticamente. Por ejemplo, tiene las siguientes llamadas componibles A -> B -> C . Si recuerda el alcance de la rutina en C y se elimina de la composición, la rutina se cancela automáticamente. Pero si recuerda de A , pase el alcance a través de B y C , use este alcance en C , y luego se elimina C , la rutina continuará ejecutándose (porque se recordó en A ) ...

over 4 years ago · Hanz Gallego Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda