【问题标题】:Android Throttle Button ClickAndroid 油门按钮点击
【发布时间】:2018-10-23 14:45:06
【问题描述】:

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

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

我不确定的情况是按钮单击开始新活动时。在这种情况下是否需要节流?我最初以为一旦新活动开始,旧活动将不再收到任何对 onClick 的调用,但现在我不确定。

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

是否有我遗漏的边缘情况?任何见解都值得赞赏!

【问题讨论】:

    标签: android button throttling


    【解决方案1】:

    是的,您仍应限制该点击。当在活动上调用finish() 时,仍有几毫秒的时间可以与它进行交互。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      • 2012-07-24
      • 2011-07-14
      • 2011-12-30
      • 1970-01-01
      相关资源
      最近更新 更多