Android Fragment实现懒加载

在最近的项目中一个界面中有四个Fragment。每个碎片中都要进行网络请求。

周期也开始并进行了加载。后来在网上进行了搜索找到了一个非常简单的官方自带的方法setUserVisibleHint(boolean isVisibleToUser)。我们可以通过这个方法来判断哪个碎片现在正在显示,当该碎片正在显示在我们眼前时为true。这样我们就可以一句该方法来进行网络请求了。下边废话不多说直接上代码:

private long refreshTime = 0;  //请求时间

    public void setUserVisibleHint(boolean isVisibleToUser) {
        if (isVisibleToUser && isVisible()) {
            if (refreshTime == 0
                    || (refreshTime != 0 && (System.currentTimeMillis() - refreshTime) > 30 * 60 * 1000)) {
                if (isConnected) {
                    initData();// 从后台获取数据
                }
            }
        }
        super.setUserVisibleHint(isVisibleToUser);
    };
    ...
    ...
    // 网络请求方法
    private void initData() {
        myProgressDialog.show();
        RequestParams params = new RequestParams();
        params.addBodyParameter("sessionId", sessionId);
        params.addBodyParameter("pageNo", "1");
        params.addBodyParameter("pageSize", "12");
        netUtil.getNetGetRequest(findHotUrl, params);
        // 在这里我们将请求时间赋值  可以达到三十分钟后再请求的效果(虽然有时候 屏幕黑一段时间 再次唤醒的时候也会加载进行网络请求这个就暂时没有明白)
        refreshTime = System.currentTimeMillis();
    }
    ...
    ...
    ..
    if (getUserVisibleHint()) {
            initData();  // 请求的时候一个判断
        }

很简单的一个方法就解决了懒加载的问题。希望对大家有帮助!(菜鸡成长史ing)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值