繁体   English   中英

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

[英]Android: how to stop calling the same function while the function is running

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

除了隐藏按钮外,还有什么方法可以处理它? 我需要使用线程来处理吗? 检查线程是否还活着? 我对此并不熟悉。 请给我一些有关如何处理它的建议和示例。

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

按下按钮时,使boolean变为true 如果为真,则执行该方法的正常功能。 然后,使此人再次按下按钮时, boolean将变为false 当它为假时,使其做您想breakreturn事情,或者什么也不做。

如果您正在调用的函数已同步,则您应该没有任何问题。 如果函数是启动线程,则可以这样:

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();
}

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

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

在完成api提取之后(可能是函数结束),添加以下几行,以使按钮再次可单击。

b1.setClickable(true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM