在我面向 Android 4.0.3 的应用程序中,我曾经有一个按钮用作开关。单击该按钮正在更改其资源(在播放/暂停之间切换),并且一些任务正在后台执行。特殊之处在于,当按下按钮时,我希望切换在短时间内不可用(以防止快速切换)。
为此,我创建了一个等待 X 秒的线程,如下所示:
void blockButton(){
new Thread() {
public void run(){
try {
synchronized(this){
button_ready = false;
sleep(5000);
button_ready = true;
}
}
catch(InterruptedException ex){}
}
}.start();
}
}
基本上在我的 Activity/onClickListener
if(button_ready){
// Start background stuff
changeButtonResource();
button.setEnabled(false);
blockButton();
button.setEnabled(true);
}
到目前为止一切顺利,一切顺利。但我最终希望将其更新为 Switch。代码几乎相同(除了 onClickListener 变成了 OnCheckedChangeListener)。
但是现在当我单击一次按钮时,再次单击它将允许更改其资源-但后台任务将无法启动(我已经尝试使用振动器和其他人,它只会更改资源)。
所以我几乎拥有了我的 Button 曾经的行为,但是资源变得混乱了。任何想法都会受到欢迎!谢谢。