0

例如:我有一个按钮,如果按下它将调用一个函数来从 API 获取数据到屏幕。但是如果用户再次按下并且该函数仍在运行(正在处理),我该如何停止调用该函数。

而不是隐藏按钮有什么办法来处理它?我需要使用线程来处理它吗?检查线程是否还活着?我对此并不熟悉。请给我一些关于如何处理它的建议和例子。

对不起,我的英语不好。谢谢。

4

3 回答 3

0

如果你调用的函数是同步的,你应该没有任何问题。如果函数是启动一个线程,那么你可以这样做:

Thread mThrd = null;
public void func() {
    if(mThrd!=null && mThrd.isRunning()) {
        return;
    }

    mThrd = new Thread(/*the runnable that do the job*/);
    mThrd.start();
}

如果函数是一个框架API,只是“在后台做某事”,它可能有一些方法告诉你它是否完成,或者你可以通过一些方法检查结果。喜欢:

public void func() {
    if(checkDone()) {
        return;
    }
    callFrameworkAPI();
}
于 2013-04-09T04:00:16.923 回答
0

按下按钮时会boolean转动。true当它为真时,执行该方法的正常功能。然后让它在人再次按下按钮时boolean转动false。如果它是假的,让它做你想做的事break,或者return什么都不做。

于 2013-04-09T03:53:48.217 回答
-1

当您调用该函数时,将以下行添加到您的函数中,这将使该按钮在单击一次后无法单击。

Button b1 = findViewById(R.id.button_name);
b1.setClickable(false);

完成 api 获取后,可能是您的情况下的函数结束,添加以下行,以使按钮再次可点击。

b1.setClickable(true);
于 2013-04-09T04:25:19.607 回答