Android--防抖

来源:互联网 发布:协同过滤算法的研究 编辑:程序博客网 时间:2024/05/17 22:53

用curreMIllinois,在应用运行期间,时间重置的时候会出问题。

    /**     * 用于设置界面防抖操作     * 处理现有问题:     * 切换tab的过程中,前一个界面创建的窗口弹出;     * 同一个界面,可以开启两个新界面     * <p>     * 设置成view点击间隔500ms,创建dialog或activity时,间隔改成3s     * 流逝时间参看@link {https://developer.android.com/reference/android/os/SystemClock.html}     */    private static long lastClickMillis = 0;    //开始 dialog 或者 activity时设置成true    //需要在dismiss/onResume的时候设置成false    public static boolean hasNewWindowCreating = false;    public static boolean isNewClick(boolean createNewWindow) {        String tag = "isNewClick";        int limitDuration = 500;        if (hasNewWindowCreating) {            limitDuration = 3 * 1000;        }        long curMillis = elapsedRealtime();        long curDuration = curMillis - lastClickMillis;        String format = "dd HH:mm:ss.SSS";        EcarxLog.d(tag, "newClick time : " + TimeUtil.formatTime(curMillis, format)                + ": lastClick time : " + TimeUtil.formatTime(lastClickMillis, format));        boolean isNew = curDuration >= limitDuration;        if (isNew) {            lastClickMillis = curMillis;            hasNewWindowCreating = createNewWindow;        }        EcarxLog.d(tag, "curDuration : " + curDuration + "---limitDuration : " + limitDuration                + "---isNew : " + isNew);        return isNew;    }
原创粉丝点击