在Java/Android中使if语句等待

在Java/Android中使if语句等待,java,android,Java,Android,我试图让我的Android应用程序在尝试执行if语句之前等待几秒钟。我听一些人说不要使用thread.sleep()方法,那么有更好的方法吗?这是我试图做的,但不起作用 try { Thread.sleep( 1500 ); } catch( InterruptedException e ) { e.printStackTrace(); } if( playerimage.getVisibility() == View.VISIBLE ) { currentscore.setT

我试图让我的Android应用程序在尝试执行if语句之前等待几秒钟。我听一些人说不要使用thread.sleep()方法,那么有更好的方法吗?这是我试图做的,但不起作用

try {
   Thread.sleep( 1500 );
}
catch( InterruptedException e ) {
   e.printStackTrace();
}
if( playerimage.getVisibility() == View.VISIBLE ) {
   currentscore.setText( "Game over" );
}

处理程序的简单示例。。这将等待1500毫秒,并将Runnable中的内容添加到创建处理程序的同一线程上的循环队列中。

类似的方法应该可以工作,创建一个处理程序,然后等待1.5秒:)这通常是最好的方法,它是最整洁的,也可能是内存上最好的,因为它实际上没有做太多,另外,因为它只做一次,这是最简单的解决方案

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
   public void run() { 
   if (playerimage.getVisibility() == View.VISIBLE) {
      currentscore.setText("Game over");
      }
   } 
}, 1500); 

使用处理器。您可以通过handler等待进程,因为您显然正在阻塞ui线程。不要。曾经更一般地说,如果你发现自己处在一个考虑线程明显等待的情况下,那么就有可能出错。
Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
   public void run() { 
   if (playerimage.getVisibility() == View.VISIBLE) {
      currentscore.setText("Game over");
      }
   } 
}, 1500);