TimeEvent.java
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.cnlive.strike.util;
import android.util.SparseArray;
/**
* Created by xiansong on 2017/9/12.
*/
public class TimeEvent {
private static final int default_id = -1;
private static final long default_event_time = 1_000;
private static SparseArray<Long> event_time_map = new SparseArray<>();
private static SparseArray<Long> current_time_map = new SparseArray<>();
/**
* 默认事件ID 限制操作 1秒
*/
public static boolean debounce() {
return debounceId(default_id, default_event_time);
}
/**
* 默认事件ID 限制操作 自定义限制时长
*
* @param interval 限制时间
*/
public static boolean debounce(long interval) {
return debounceId(default_id, interval);
}
/**
* 指定事件ID 限制操作 1秒
*
* @param event_id 事件ID
*/
public static boolean debounceId(int event_id) {
return debounceId(event_id, default_event_time);
}
/**
* 指定事件ID 限制操作 自定义限制时长
*
* @param event_id 事件ID
* @param interval 限制时间
* @return
*/
public static boolean debounceId(int event_id, long interval) {
if (current_time_map.get(event_id, (long) 0) + event_time_map.get(event_id, (long) 0) < System.currentTimeMillis()) {
event_time_map.put(event_id, interval);
current_time_map.put(event_id, System.currentTimeMillis());
return false;
} else return true;
}
}