2009-01-17 107 views
9

我正在为Android创建匹配游戏,当用户获得匹配时,会弹出一个对话框,指出“Match!”。我无法弄清楚如何做到这一点。如果我使用Thread.currentthread()。sleep,则永远不会出现对话框。Android中的计时弹出式菜单

android.app.AlertDialog a = new android.app.AlertDialog.Builder(match.this).setTitle("Match!").show(); 
Thread.currentthread().sleep(1000); 
a.dismiss(); 

什么都没有发生 - 程序只是挂了一秒钟。我希望它弹出仅1秒钟,或者如果有另一种弹出式类型的东西,这也会很好。

回答

16

您正尝试在屏幕上的短时间内弹出一段文字信息?

对于这些类型的警报祝酒的是巨大的:

Toast.makeText(this, "Match!", Toast.LENGTH_LONG).show(); 

是你在找什么? Here is the Java Doc.

+0

完美!非常感谢你! – 2009-01-18 23:30:59

4

该对话框显示在当前线程中,但您正在将线程置于睡眠状态,因此永不显示。除了事件限制之外,很少有情况下您想要在UI线程中实质性地延迟睡眠。

在这种情况下,使用吐司是最简单的,因为前面的海报建议。一些其他方式来处理你想在未来完成的工作

  • Java定时器。该行动将发生
    在不同的线程,所以你必须 要小心叫你做什么鬼
  • 查看有postDelayed(Runnable的动作,长delayMillis)方法将导致了Runnable到UI线程后大致可以执行delayMillis。