0

也许这是一个只需要一些逻辑的问题。

我们有一个调用不同 Web 服务并返回数据的 android 应用程序。在应用程序中有两个按钮。我们有 10 个 API(Web 服务)。按钮 1 将调用 api api1、api 2 api 3 和 api n。按钮 2 将调用 api10、api9、api 8... api 1。我在按钮单击中调用 API,但使用以下代码

handler.postDelayed(new Runnable() {
    public void run() {
        switchToApi(true);
    }
}, 100);

到目前为止,实现是在每次单击时调用 API。也就是说,如果我点击 button1 它将调用 api1 并且我只能在 api1 完成后执行其他操作。但我想要,用户可以连续点击按钮。继续点击不需要调用 API。但是可以更改api号。也就是说,如果用户点击并等待 2 秒而不点击,则应调用相应的 API。你能建议和机制吗?

4

1 回答 1

0

请尝试使用以下代码:

public static void ButtonLockThread(final int id, final Activity activity) {
    Thread thread = new Thread(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();

            }
            activity.findViewById(id).setClickable(true);
        }

    });
    thread.start();

}

public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.armDsarmButton:
        findViewById(R.id.armDsarmButton).setClickable(false);
        WebServiceController.getArmDisarmRelayInfo(this, defaultPanelID);
        Calculations.ButtonLockThread(R.id.armDsarmButton, this);
        break;
    default:
        break;
    }
}
于 2013-05-13T08:16:58.007 回答