Тёмный

SavedStateHandle en MVVM 🔵 Haz que tu estado sobreviva siempre de forma sencilla 

DevExpert - Programación Android y Kotlin
Подписаться 48 тыс.
Просмотров 4,2 тыс.
50% 1

🎁 Te cuento cómo aprender todo sobre Kotlin en este training gratuito:
👉 bit.ly/2HZMNY8
En Android siempre hemos tenido un par de problemas que son difíciles de gestionar cuando estamos tratando con los ciclos de vida.
El primero es la rotación: cuando rotamos el dispositivo, la Activity es destruida y recreada, y por tanto el estado que hubiéramos almacenado desaparece.
Esto hoy en día es fácil de solucionar utilizando ViewModel, ya que sobrevive a las rotaciones.
El segundo es que que el proceso de la App sea destruido por el sistema porque necesita los recursos para otra cosa. Esto ocurre cuando la App está en segundo plano, y es posible que cuando el usuario vuelva espere encontrarse la App en el estado en que la dejó.
Para este caso, la Activity puede usar el onSavedInstanceState, y almacenar ahí los datos que luego necesite recuperar. Pero si usamos un ViewModel, la comunicación se vuelve muy compleja.
Es por eso que crearon el SavedStateHandle
Espero que os guste ¡Un abrazo!
//////////////////////////////////////////////////////////////////////////////////////////
Si aún no te decides sobre si Kotlin es el lenguaje que deberías aprender, te animo a que te apuntes a mi masterclass gratuita donde te hablo sobre:
1️⃣ La situación de Kotlin en el mercado y la oportunidad de aprenderlo
2️⃣ Cómo empezar con Kotlin desde cero en pocos minutos
3️⃣ Cómo Kotlin puede hacerte mucho más productivo
🎁 Apúntate aquí: bit.ly/2HZMNY8
/////////////////////////////////////////////////////////////////////////////////////////////
➡➡ SÍGUEME EN OTRAS REDES SOCIALES ⬅⬅
👉 Linkedin: www.linkedin.com/in/antoniolg
👉 Instagram: / devexperto
👉 Twitter: / devexperto1
Únete a la Comunidad de DevExperto en Discord 👉 devexperto.com...
/////////////////////////////////////////////////////////////////////////////////////////////
📌 SÍGUEME EN RU-vid:
➡➡ Suscríbete: devexperto.com...
//////////////////////////////////////////////////////////////////////////////////////////
🎬🎬 ARTÍCULOS Y VÍDEOS RELACIONADOS: 🎬🎬
✅MVVM en Android con DataBinding 👉 Guía completa
• MVVM en Android con Da...
////////////////////////////////////////////////////////////////////////////////////////////////
Si te ha gustado el vídeo de hoy dame apoyo con un ❤ LIKE, deja un 💬 comentario/ duda y 🥇 SUSCRÍBETE si aún no lo has hecho! Nos vemos en el próximo vídeo!
Antonio Leiva
💻 www.devexperto...

Опубликовано:

 

6 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 19   
@devexpert_io
@devexpert_io 3 года назад
Si aún no te decides sobre si Kotlin es el lenguaje que deberías aprender, te animo a que te apuntes a mi masterclass gratuita 👉 bit.ly/33zuwIB
@alidoran8234
@alidoran8234 2 года назад
Simple explanation and great work. Thanks
@devexpert_io
@devexpert_io 2 года назад
Thanks!
@nonofce
@nonofce 3 года назад
👍👍 Excelente Antonio, muchas gracias.
@devexpert_io
@devexpert_io 3 года назад
Gracias!
@iambedoy
@iambedoy 3 года назад
Super!, había pensado en usarlo, pero no sabía como forzarlo desde los settings. Sería bueno que hablaras de DataStore, muchas gracias!
@devexpert_io
@devexpert_io 3 года назад
Genial Carlos! Temazo el de DataStore, me lo apunto para tratarlo pronto
@arieldipietro6110
@arieldipietro6110 2 года назад
Excelente, estaba buscando esto y no lo encontraba! Ahora bien, esto funciona con LiveData de tipos primitivos, pero es posible hacerlo con LiveData una clase generada por nosotros?
@devexpert_io
@devexpert_io 2 года назад
Tendría que ser Parcelable o Serializable el tipo. Al final tiene que poder guardarse en un Bundle de Android.
@arieldipietro6110
@arieldipietro6110 2 года назад
@@devexpert_io Muchas gracias!!
@javiercardona6478
@javiercardona6478 3 года назад
Hola, si uno esta utilizando dagger y tiene un private val viewModel by lazy { getViewModel {component.activityViewModel}} debe hacer algun paso especial para pasar el SavedStateHandle ya que me sale un error androidx.lifecycle.SavedStateHandle cannot be provided without an @Inject constructor or an @Provides-annotated method. gracias
@devexpert_io
@devexpert_io 3 года назад
sí, la Factory con la que lo generas es distinta, necesitas que la factoría que crea el ViewModel sea una "AbstractSavedStateViewModelFactory"
@davidgutierrez943
@davidgutierrez943 3 года назад
"AbstractSavedStateViewModelFactory" recibe como parametro un registry owner ten en cuenta que se debe proporcionar en un activity o fragment
@davidgutierrez943
@davidgutierrez943 3 года назад
Una pregunta , con la inyección de dependencia de dagger 2 se crea un factory para proporcionar todos los viewmodels, se Injecta el factory y se hace la instancia del viewmodel pasando por parametro ese factory, pero con activity ktx como se podria hacer ? gracias
@devexpert_io
@devexpert_io 3 года назад
Ahora mismo no recuerdo, últimamente uso más Koin o Hilt. Pero en principio debería ser igual, no?
@davidgutierrez943
@davidgutierrez943 3 года назад
@@devexpert_io gracias por responder, voy a consultar como utilizar ktx con dagger2
@yerihiturriago9271
@yerihiturriago9271 2 года назад
Cómo sería hacerlo con flows?
@devexpert_io
@devexpert_io 2 года назад
Hacer el qué? El SavedStateHandle?
@yerihiturriago9271
@yerihiturriago9271 2 года назад
@@devexpert_io Si exacto
Далее
🔹 Base de datos reactiva con ROOM y FLOW
12:57
Просмотров 4,7 тыс.
Cute kitty gadget 💛💕
00:23
Просмотров 14 млн
Butch REACT to Creative way to fix damaged tile!
00:46
🔹 StateFlow, el sustituto natural de LiveData
9:25
Best practices for saving UI state on Android
20:36
Просмотров 38 тыс.
🔹Flows en Kotlin: Todo lo que necesitas saber
14:09
👉 Usando Flow en un proyecto Android 👾
8:55
Просмотров 7 тыс.
Cute kitty gadget 💛💕
00:23
Просмотров 14 млн