据我所知,在某些情况下,可能需要限制按钮点击(或完全禁用)。我们一直在使用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);
});
我有遗失的边缘情况吗?任何见解都表示赞赏!
答案 0 :(得分:0)
是,您仍应限制该点击。在活动上调用finish()
时,您仍然可以在几毫秒内与之交互。
startActivity()
或finish()
时,您只是在排队此请求。实际操作稍后会发生,异步。onCreate()
,onResume()
,onStart()
等中执行逻辑。这将花费可变的时间,具体取决于逻辑消耗的时间。onPause()
,onStop()
和onDestroy()
等(或其中一些,取决于您在{{1 }}。