Android:如何在函数运行时停止调用相同的函数

时间:2013-04-09 03:52:23

标签: java android

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

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

抱歉我的英语不好。 感谢。

3 个答案:

答案 0 :(得分:0)

按下按钮时,设置boolean转为true。当它真正做到该方法的正常功能时。然后当该人再次按下按钮booleanfalse时再这样做。如果错误,请按照breakreturn执行操作,或者不执行任何操作。

答案 1 :(得分: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();
}

答案 2 :(得分:-1)

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

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

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

b1.setClickable(true);