最近在做一个相册的项目, 会有这么一个场景,就是相册列表点击图片进入大图, 如何共享查询后的相册数据。
考虑到有三种方式:
- 1、Intent 传参
这种方式缺点很明显,数据过大,binder 直接拦截抛出异常。 - 2、静态的变量存储
缺点:容易造成内存泄漏,而且相册列表查询是处于后台一直查询状态,所以,还会有并发风险。 - 3、Jetpack 中ViewModel 的共享。
这种好处再与不需要处理生命周期的问题,因为ViewModel 的生命周期会比组件Activity 的长,所以在关联所有的Activity 关闭后,ViewModel 才会走Clear 方法清空所有数据。
使用方法:
- Step 1 创建ViewModel
open fun <T : ViewModel> createViewModel(activity: FragmentActivity?,</

本文探讨了在Android相册项目中,如何通过避免Intent参数过大和内存泄漏问题,选择合适的解决方案来共享查询后的相册数据。重点介绍了使用Jetpack ViewModel进行跨Activity的数据持久化,以及在build.gradle中的引用设置。
最低0.47元/天 解锁文章
3677





