AOP集成防止连续多次点击问题
生活随笔
收集整理的這篇文章主要介紹了
AOP集成防止连续多次点击问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
AOP即Aspect Oriented Programming的縮寫,習慣稱為切面編程;與OOP(面向對象編程)萬物模塊化的思想不同,AOP則是將涉及到眾多模塊的某一類問題進行統(tǒng)一管理,AOP的優(yōu)點是將業(yè)務邏輯與系統(tǒng)化功能高度解耦,讓我們在開發(fā)過程中可以只專注于業(yè)務邏輯,其他一些系統(tǒng)化功能(如路由、日志、權限控制、攔截器、埋點、事 件防抖等)則由AOP統(tǒng)一處理; 集成 //root gradledependencies {classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.1'}//app或module gradle
apply plugin: 'android-aspectjx' //插件compile 'org.aspectj:aspectjrt:1.8.9' //jar
代碼
public class NoDoubleClickUtils {private final static int SPACE_TIME = 500;//2次點擊的間隔時間,單位msprivate static long lastClickTime;public synchronized static boolean isDoubleClick() {long currentTime = System.currentTimeMillis();boolean isClick;if (currentTime - lastClickTime > SPACE_TIME) {isClick = false;} else {isClick = true;}lastClickTime = currentTime;return isClick;} }@Aspect public class AspectTest {final String TAG = AspectTest.class.getSimpleName();@Around("execution(* android.view.View.OnClickListener.onClick(..))")public void onClickLitener(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {Log.e(TAG, "OnClick");if (!NoDoubleClickUtils.isDoubleClick()) {proceedingJoinPoint.proceed();}} }?
這樣就能hook到所有onClick多次重復點擊的問題了,有效防止連續(xù)點擊 (非原創(chuàng),只為記錄問題,以供以后查看)?
轉載于:https://www.cnblogs.com/fengfenghuifei/p/11224832.html
總結
以上是生活随笔為你收集整理的AOP集成防止连续多次点击问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ListViewAutoScrollHe
- 下一篇: 应用内安装部分手机出现解析错误