安卓性能优化之懒加载(Fragment中数据的懒加载)

本文探讨了在Android应用中,由于ViewPager的预加载机制可能导致的性能问题,并详细介绍了懒加载的概念,即在Fragment可见时才加载数据。通过关键方法Fragment的setUserVisibleHint(),配合isPrepared和isLazyLoaded参数来防止空指针异常和重复加载,实现Fragment数据的高效加载策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、背景:为什么需要懒加载。  

    我们在做安卓项目的时候,经常会有一个使用场景:ViewPage与多个Fragment组合使用。  

   

   

    然而,viewpager有着预加载机制:默认一次加载当前页面前后两个页面,即使设置setOffLimit(0)也没有效果。  虽然预加载优化了app的体验效果,但是这样把我们看不到的页面的数据也加载了,大大降低了性能,浪费初始化资源。  

    这时候,我们就需要懒加载。  

 

2、什么是懒加载:懒加载的定义。

    当页面可见的时候,才加载当前页面。 没有打开的页面,就不会预加载。

    说白了,懒加载就是可见的时候才去请求数据。

 

3、实现方法

(1)关键点 

    主要的方法是Fragment中的setUserVisibleHint(),此方法会在onCreateView()之前执行,当viewPager中fragment改变可见状态时也会调用,当fragment 从可见到不见,或者从不可见切换到可见,都会调用此方法,使用getUserVisibleHint() 可以返回fragment是否可见状态。  

(2)注意事项

     <1>添加isPrepared参数。在系统调用onActivityCreated时设置为true,

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值