Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何单击多个按钮,但仅对上次单击有效?_Android_Button - Fatal编程技术网

Android 如何单击多个按钮,但仅对上次单击有效?

Android 如何单击多个按钮,但仅对上次单击有效?,android,button,Android,Button,我正在开发一个应用程序。它有多个按钮,每个按钮都会将TCP数据发送到服务器 例如:按钮A、按钮B和按钮C有三个按钮。按钮A将把A发送到服务器,等等 private static String data; btn_A.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub

我正在开发一个应用程序。它有多个按钮,每个按钮都会将TCP数据发送到服务器

例如:按钮A、按钮B和按钮C有三个按钮。按钮A将把A发送到服务器,等等

private static String data;

btn_A.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // TODO Auto-generated method stub

                data = "A";
                send(data);
            }
        });

btn_B.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // TODO Auto-generated method stub

                data = "B";
                send(data);
            }
        });

btn_C.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // TODO Auto-generated method stub

                data = "C";
                send(data);
            }
        });
如果我快速点击按钮A到按钮C。服务器将接收三次数据。这是低效的

如何实现点击多个按钮,但只为最后一次点击工作

我希望应用程序只发送我点击的最后一个按钮的数据,如果我快速点击按钮A到按钮C

我尝试使用线程每3秒钟向服务器发送一次数据。它将每3秒发送最后一个数据值


还有其他更好的方法吗?

好吧,正如我在评论中看到的,有人告诉你可以通过异步任务解决这个问题。这也是我的建议。。。 您必须设置一个处理程序和一个方法来取消任务

请看以下两个链接: 和 如何取消SO上的任务


希望能有帮助

您可以使用AsyncTask。@Gunaseelan如何使用AsyncTask解决它?一旦您向服务器发送请求,请等待响应,在收到响应后,允许用户与UI线程交互。我希望你能理解