对于快速点击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)