12

我正在为 Android 创建一个匹配游戏,当用户获得匹配时,应该会弹出一个对话框,上面写着“匹配!” 我无法弄清楚如何做到这一点。如果我使用 Thread.currentthread().sleep,则对话框永远不会出现。

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

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

4

2 回答 2

18

您想在屏幕上短时间在弹出窗口中显示一条短信?

对于这些类型的警报,祝酒词很棒:

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

那是你要找的吗? 这是Java文档。

于 2009-01-18T08:18:31.040 回答
4

该对话框显示在当前线程中,但您将线程置于睡眠状态,因此它永远不会出现。除了事件限制之外,在少数情况下,您希望在 UI 线程有相当大的延迟的情况下调用 sleep。

在这种情况下,使用 Toast 是最简单的,正如之前的海报所建议的那样。处理您希望在未来完成的工作的其他几种方法

  • Java 计时器。该操作将
    在不同的线程上发生,因此您必须小心您所做的 gui 调用
  • Views有一个postDelayed(Runnable action, long delayMillis)方法会导致Runnable在大致delayMillis后在UI线程上执行。
于 2009-05-29T17:58:47.973 回答