SingleClick:
@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.FUNCTION)
annotation class SingleClick(
// 点击间隔时间,毫秒
val value: Long = 500
)
SingleClickAspect:
import android.os.SystemClock
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.annotation.Around
import org.aspectj.lang.annotation.Aspect
import org.aspectj.lang.annotation.Pointcut
import org.aspectj.lang.reflect.MethodSignature
@Aspect
class SingleClickAspect {
/**
* 定义切点,标记切点为所有被@SingleClick注解的方法
* 注意:这里me.baron.test.annotation.SingleClick需要替换成
* 你自己项目中SingleClick这个类的全路径哦
*/
@Pointcut("execution(@你的包名.SingleClick * *(..))")
fun methodAnnotated() { }
/**
* 定义一个切面方法,包裹切点方法
*/
@Around("methodAnnotated()")
@Throws(Throwable::cl