Android throttle 按钮单击

标签 android button throttling

我知道在某些情况下,可能需要限制(或完全禁用)按钮点击。我们一直在使用 RxView 来处理这种情况:

RxView.clicks(button)
        .throttleFirst(500, TimeUnit.MILLISECONDS)
        .subscribe(aVoid -> {
            //do work
        });

我不确定的情况是按钮单击何时开始新 Activity 。这种情况有必要 throttle 吗?我最初认为一旦新 Activity 开始,旧 Activity 将不再收到任何对 onClick 的调用,但现在我不确定。

button.setOnClickListener(view -> {
    Intent i = new Intent(context, TestActivity.class);
    context.startActivity(i);
});

是否有我遗漏的极端情况?感谢任何见解!

最佳答案

,您仍然应该限制该点击。当对 Activity 调用 finish() 时,您仍然可以在几毫秒的时间内与其进行交互。

  • 当您执行 startActivity()finish() 时,您只是在排队此请求。实际操作稍后发生,异步
  • 因此,当您开始一项新 Activity 并完成当前 Activity 时,这两件事是异步发生的,并且彼此完全独立。实际上,您是否先完成当前 Activity 并在代码的下一行开始新 Activity 甚至都没有关系。
  • 在完全启动之前,B会执行onCreate()onResume()onStart()等逻辑。这需要时间量可变,具体取决于逻辑的耗时情况。
  • 在完全完成之前,A 将对 onPause()onStop()onDestroy() 等(或只是其中的一些,具体取决于您调用 finish() 的时间点。

关于Android throttle 按钮单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42911241/

相关文章:

php - Laravel Throttle 第二次覆盖

c# - 一个 WCF 服务的两个 throttle

android - 最新版本的android studio项目中的projectFilesBackup文件夹

python - 无法定位 css_selector 元素 Selenium

ruby-on-rails - 如何创建一个按钮来增加模型的属性并且可以在每个浏览器中按下一次?

silverlight - 如何给动态创建的按钮控件设置背景图片?

performance - 有没有办法限制或限制 Oracle 中用户使用的资源?

android - Android 中屏幕方向更改时继续播放音乐

android - 对于具有多个帐户的 Android 应用程序,GCM 注册 ID 的唯一性如何?

java - 选择超过 10 张图像时应用程序崩溃