Android 控制元件多次點選處理方法
阿新 • • 發佈:2018-12-24
描述
在開發Android App時有時給控制元件沒有設定selector,此時當手機反應稍微緩慢一點會使使用者感覺自己點選沒有反應,因此會連著點選多次,但是這會是伺服器壓力增大,做一些重複操作。因此,在此記錄一下防止應用在短時間內多次點選加大伺服器壓力的解決方法
一、在點選事件裡面進行邏輯操作前呼叫下列方法進行判斷
public class Utils {
private static long lastClickTime;
public static boolean isMultiClick() {
boolean flag = false ;
long curClickTime = System.currentTimeMillis();
// 1000代表1秒
if ((curClickTime - lastClickTime) >= 1000) {
flag = true;
}
lastClickTime = curClickTime;
return flag;
}
}
使用時直接呼叫此方法即可
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Utils.isMultiClick()) {
// 進行點選事件後的邏輯操作
}
}
});
二、方法2,建立一個抽象類實現OnClickListener介面
public abstract class OnMultiClickListener implements View.OnClickListener{
private static long lastClickTime;
public abstract void onMultiClick(View v);
@Override
public void onClick(View v) {
long curClickTime = System.currentTimeMillis();
if((curClickTime - lastClickTime) >= 1000) {
// 超過1S後再將lastClickTime重置為當前點選時間
lastClickTime = curClickTime;
onMultiClick(v);
}
}
}
呼叫
button.setOnClickListener(new OnMultiClickListener() {
@Override
public void onMultiClick(View v) {
// 進行點選事件後的邏輯操作
}
});