android - 在 Android 上处理非常快速的按钮点击

标签 android

我有一个“+”和“-”按钮,可以增加/减少元素的数量。

每次更改数量时,我都需要发送网络请求(点击网络服务)。

问题是,用户可能会“垃圾邮件”“+”和“-”按钮。例如,他们可能会在一秒钟内按 3 次。

对于这种情况,我想稍等一下,然后根据最后的数量发送网络请求。这是为了减少我需要执行的请求数量(在本例中,从 3 个请求减少到 1 个请求)。

推荐的方法是什么?

我可以通过在我的 OnClick 中使用 postDelayed 来解决这个问题吗?

最佳答案

我想你可以试试这样的东西

private long lastClick;

void onClick(View view) {
    lastClick = System.currentTimeMillis();

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            if (System.currentTimeMillis() - lastClick >= 1000) {
                makeNetworkRequest();
            }
        }
    }, 1000);
}

此代码将跳过第一个请求并在暂停 1 秒后仅运行最后一个请求

关于android - 在 Android 上处理非常快速的按钮点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43413272/

相关文章:

android - 如何在 "TextInputLayout"的右端动态添加一个 drawable?

android - Encog 或 Neuroph 是否可以在 Android 上运行?

java - Java中的Readline()不能正确处理中文字符

android - Eclipse 不编译额外的 jar 文件

java - 我如何知道我的服务何时从广播接收器与 Android 调用?

java - 是否可以从主线程以外的地方访问 UI 元素?

java - 在android中迭代它时从堆栈中删除一个项目

Android - 来自 URL 的 ImageView 不会在 ListView 中 fill_parent

android - 如何强制元数据值键入字符串?

java - Android 解压zip文件