我正在开发一个Android Game.In本场比赛,有上轨道列车运行。 这是正在运行的线程。 我想说明一个警告对话框时有发生碰撞。 当我申请的警告对话框中显示误差不能创建内螺纹已不叫处理looper.prepare()
Answer 1:
你必须需要创建AlertDialog
UI线程否则它永远不会在里面工作。 如果你是在不同的线程使用MessageHandler
或者可以使用runOnUiThread
(使用可运行)来创建你的对话框内。
Answer 2:
这将帮助你:
runOnUiThread(new Runnable() {
@Override
public void run() {
// Your dialog code.
}
});
Answer 3:
您可以创建活动课的处理程序,并可以调用SendMessage函数是处理对象。 编写代码在处理程序的的handleMessage方法来显示警报,例如:
活动课
Handler mHandler = new Handler()
{
public void handleMessage(Message msg)
{
//Display Alert
}
};
//Thread
Thread thread= new Thread()
{
public void run()
{
//Logic
MHandler.sendEmptyMessage(0);
}
}
Answer 4:
您可以使用处理程序来完成这项工作。
Handler mHandler = new Handler(Looper.getMainLooper());
mHandler.post(new Runnable() {
@Override
public void run() {
// Your UI updates here
}
});
Answer 5:
你必须让你像下面UI线程对话
runOnUiThread(new Runnable() {
@Override
public void run() {
// Your dialog code.
}
});
Answer 6:
你可以试试这个,以检查应用程序可见
Activity currentActivity = MainClassApp.getCurrentActivity();
boolean isAppVisible = currentActivity != null;
if (isAppVisible) {
currentActivity.runOnUiThread(() ->
// Your Dialog Code
}
文章来源: How to show alert dialog in a running thread?