![](/img/trans.png)
[英]if called Cancel or stop same function then start fresh if presently running in Android
[英]Android: how to stop calling the same function while the function is running
例如:我有一个按钮,如果按它会调用一个函数,以从API到屏幕获取数据。 但是如果用户再次按下并且该功能仍在运行(处理中),我该如何停止调用该功能。
除了隐藏按钮外,还有什么方法可以处理它? 我需要使用线程来处理吗? 检查线程是否还活着? 我对此并不熟悉。 请给我一些有关如何处理它的建议和示例。
对不起,我的英语不好。 谢谢。
按下按钮时,使boolean
变为true
。 如果为真,则执行该方法的正常功能。 然后,使此人再次按下按钮时, boolean
将变为false
。 当它为假时,使其做您想break
或return
事情,或者什么也不做。
如果您正在调用的函数已同步,则您应该没有任何问题。 如果函数是启动线程,则可以这样:
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.