Android 如何防止循环上的活动?我认为runOnUIThread可能是罪魁祸首

Android 如何防止循环上的活动?我认为runOnUIThread可能是罪魁祸首,android,loops,android-activity,Android,Loops,Android Activity,当我在三星Galaxy Tab 3中调试程序时,程序中似乎有一个主要的循环错误 3带有onClickListener的ImageButton最终调用倒计时方法 显然,当我用onClickListener按两个ImageButtons或双击同一个按钮后,它就会变成imageButton.setVisibilityView.INVISIBLE,startActivityIntent就会进行疯狂的循环追逐!我不想尝试在它上进行反复调试,因为我的平板电脑由于某种原因失去了通过USB连接的能力,我不得不在

当我在三星Galaxy Tab 3中调试程序时,程序中似乎有一个主要的循环错误

3带有onClickListener的ImageButton最终调用倒计时方法

显然,当我用onClickListener按两个ImageButtons或双击同一个按钮后,它就会变成imageButton.setVisibilityView.INVISIBLE,startActivityIntent就会进行疯狂的循环追逐!我不想尝试在它上进行反复调试,因为我的平板电脑由于某种原因失去了通过USB连接的能力,我不得不在出厂时重置它以恢复USB连接,这是一个相当麻烦的问题

我有3种可能导致这种情况的方法:

public int setInterval,返回-interval全局int变量

public void countdownit interval,其中包含具有

timer.scheduleAtFixedRate(new TimerTask(){
    public void run(){
         runOnUiThread(new Runnable() {  // Need to show TextView changes
              public void run(){
                 TextView.setText(setInterval() + 1); //changes text as if count down
                         // the .setText(setInterval); suddenly decrement too fast
                 if(win){
                     //Do something
                 }
                 else{
                     //Do something and also...
                     goToResult(); // I believe this is looping
                 }
              }
         }
    }
}); }}, delay, period);
public void goToResult,它还包含一个与对象名相同的计时器类global

timer.scheduleAtFixedRate(new TimerTask(){
    public void run(){
         setInterval();

         if(interval < 0){
             // Do startActivity(Intent); HERE
         }

    }, delay, period);

在重复的TimerTask中激发startActivity意图听起来不是个好主意。为什么要这样做?好的,但这不需要重复计时器。基本上,我需要它,以便在显示textView.setTextYou Lost以供阅读后,StartActivityContent将显示ResultActivity.class。换句话说,我想在延迟3秒后调用ResultActivity,你是什么意思?我想我的计时器只有在按下imageButton时才会重复,不是吗?你弄错了,请参阅TimerTask的文档。