如何在正在运行的线程中显示警报对话框?

use*_*798 6 android game-loop android-alertdialog

我正在开发一款Android游戏.在这个游戏中,有火车运行的轨道.这是运行线程.我想在两者之间发生碰撞时显示警告对话框.当我正在应用警告对话框时显示错误无法在未调用的线程内创建处理程序looper.prepare().

Ank*_*ana 15

这将有助于您:

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        // Your dialog code.
    }
});
Run Code Online (Sandbox Code Playgroud)


Dau*_*fin 11

您必须创建AlertDialog内部UI线程,否则它永远不会工作.如果您使用不同的线程,MessageHandler或者可以使用runOnUiThread(使用runnable)在内部创建对话框.


小智 6

您可以使用处理程序来完成这项工作。

Handler mHandler = new Handler(Looper.getMainLooper());
mHandler.post(new Runnable() {
    @Override
    public void run() {
        // Your UI updates here
    }
});
Run Code Online (Sandbox Code Playgroud)


jee*_*eet 6

您可以在Activity Class中创建一个处理程序,并可以将sendMessage调用到该处理程序对象.编写代码以在Handler的handleMessage方法中显示警报,例如:

活动类

Handler mHandler = new Handler()
{
    public void handleMessage(Message msg)
    {
       //Display Alert
    }
};

//Thread

Thread thread= new Thread()
{
    public void run()
    {
         //Logic
         MHandler.sendEmptyMessage(0);
    }
}
Run Code Online (Sandbox Code Playgroud)