Android 某时间段内记录某个方法执行的次数--5分钟内刷新是否超过五次

获取时间方法

SystemClock.uptimeMillis() // 从开机到现在的毫秒数(手机睡眠的时间不包括在内);

System.currentTimeMillis() // 从1970年1月1日 UTC到现在的毫秒数;

5分钟内记录刷新次数

5分钟内刷新是否超过五次执行不同代码


private long lastonclickTime=0;//第一次刷新时间
private int refreshNum=0;//刷新次数
private ArrayList<Long> refreshList = new ArrayList<>();//刷新时间list

public void onRefresh() {
        //五分钟内刷新超过5次 才出现提示
        long time= SystemClock.uptimeMillis();//局部变量
        refreshList.add(time);
        refreshNum++;
        if (refreshNum==1) lastonclickTime=refreshList.get(0);
        if (time-lastonclickTime<=300000&&refreshNum<=5) {
			//            执行代码

        }else if (time-lastonclickTime<=300000&&refreshNum>5){
            //            执行代码
        }
        else
        {
            ArrayList<Long> tem = new ArrayList<>();
            int total = refreshList.size();
            for (int i = 0;i<total;i++)
            {
                if (time-300000<refreshList.get(i))
                    tem.add(refreshList.get(i));
            }
            refreshList.clear();
            refreshList.addAll(tem);
            refreshNum = refreshList.size();
            if (!refreshList.isEmpty())
            {
                lastonclickTime = refreshList.get(0);
                if (refreshNum>5)
                {
                    //执行代码
                }
                else {
                    //执行代码
                }
            }else {
                refreshList.add(time);
                refreshNum++;
                if (refreshNum==1) lastonclickTime=refreshList.get(0);
               //执行代码
            }

        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值