Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

595
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!