Android油门按钮单击

时间:2017-03-20 18:25:30

标签: android button throttling

据我所知,在某些情况下,可能需要限制按钮点击(或完全禁用)。我们一直在使用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);
});

我有遗失的边缘情况吗?任何见解都表示赞赏!

1 个答案:

答案 0 :(得分:0)

,您仍应限制该点击。在活动上调用finish()时,您仍然可以在几毫秒内与之交互。

  • 执行startActivity()finish()时,您只是在排队此请求。实际操作稍后会发生,异步
  • 结果,当您开始一个新活动并完成当前活动时,这两种情况是异步发生的,并且彼此完全独立。实际上,即使您先完成当前活动并在代码的下一行中开始新活动实际上也没有关系。
  • 在完全启动之前,B将在onCreate()onResume()onStart()等中执行逻辑。这将花费可变的时间,具体取决于逻辑消耗的时间。
  • li>
  • 在完全完成之前,A将对onPause()onStop()onDestroy()等(或其中一些,取决于您在{{1 }}。