防止按钮重复点击导致Activity重复启动

831 阅读1分钟

对于快速点击button导致activity重复启动的情况相信经常遇到,对于这种情况一般是有两种解决方案:

1 给button设置点击间隔,防快速点击

代码如下:

val delay = 300
var lastClickTime: Long = 0
fun isFastClick(): Boolean {
    var flag = false
    val curClickTime = System.currentTimeMillis()
    if ((curClickTime - lastClickTime) < delay) {
        flag = true
    }
    lastClickTime = curClickTime
    return flag
}

btn.setOnClickListener {
    if (isFastClick()) {
    return@setOnClickListener
    }
    // dosomething
}

2 给要启动的Activity设置launchMode

这种方案设置singleTop或singleTask都是可以的,具体得看项目对Activity任务栈的需求(不过一般都是singleTop)