安卓中的定时弹窗

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秒钟,或者如果有其他类型的弹出框也可以。

2个回答

18
你想在屏幕上短暂地显示一个文本消息弹窗吗?
对于这种警报,Toast 是个不错的选择:
Toast.makeText(this, "Match!", Toast.LENGTH_LONG).show();

这是你正在寻找的吗? 这里是Java文档。


我也做到了,但有没有一种方法可以将它显示在应用程序的中心或其他位置? - BIBEKRBARAL

4

该对话框显示在当前线程中,但您正在将该线程置于休眠状态,因此它永远不会出现。除了事件限制之外,在 UI 线程中使用 sleep 并带有实质性延迟的情况很少。

在这种情况下,像之前的帖子建议的那样使用 Toast 是最简单的方法。处理未来要完成的工作的另外两种方法:

  • Java 定时器。操作将发生在不同的线程上,因此您必须小心调用哪些 GUI 调用
  • 视图具有 postDelayed(Runnable action, long delayMillis) 方法,该方法将在大约 delayMillis 后在 UI 线程上执行 Runnable。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接