Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

602
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda