处理这种情况的更重要的方法是将RxJava2与Throttling运算符(Throttle First)一起使用。在Kotlin中实现此步骤:
1)。依赖关系:-在build.gradle应用级文件中添加rxjava2依赖关系。
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxjava:2.2.10'
2)。构造一个实现View.OnClickListener的抽象类,该类包含节流优先运算符以处理视图的OnClick()方法。代码段为:
import android.util.Log
import android.view.View
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.subjects.PublishSubject
import java.util.concurrent.TimeUnit
abstract class SingleClickListener : View.OnClickListener {
   private val publishSubject: PublishSubject<View> = PublishSubject.create()
   private val THRESHOLD_MILLIS: Long = 600L
   abstract fun onClicked(v: View)
   override fun onClick(p0: View?) {
       if (p0 != null) {
           Log.d("Tag", "Clicked occurred")
           publishSubject.onNext(p0)
       }
   }
   init {
       publishSubject.throttleFirst(THRESHOLD_MILLIS, TimeUnit.MILLISECONDS)
               .observeOn(AndroidSchedulers.mainThread())
               .subscribe { v -> onClicked(v) }
   }
}
3)。在活动视图点击时实现此SingleClickListener类。这可以通过以下方式实现:
override fun onCreate(savedInstanceState: Bundle?)  {
   super.onCreate(savedInstanceState)
   setContentView(R.layout.activity_main)
   val singleClickListener = object : SingleClickListener(){
      override fun onClicked(v: View) {
       
      }
  }
xm_viewl_id.setOnClickListener(singleClickListener)
}
在应用程序中实施上述步骤可以简单地避免多次单击视图直到600mS。祝您编码愉快!