Java 如何显示来自其他线程的警报对话?
我有一个应用程序,它有一个链接到布局的类。然后,此布局在另一个线程中运行进程,以避免冻结布局。最后,第二个线程中的代码应该显示第一个线程中布局上的对话。代码正在运行。我知道这一点,因为我在它的结尾放了一份打印声明,但对话没有出现Java 如何显示来自其他线程的警报对话?,java,android,multithreading,Java,Android,Multithreading,我有一个应用程序,它有一个链接到布局的类。然后,此布局在另一个线程中运行进程,以避免冻结布局。最后,第二个线程中的代码应该显示第一个线程中布局上的对话。代码正在运行。我知道这一点,因为我在它的结尾放了一份打印声明,但对话没有出现 那么,一旦线程完成,我如何让对话显示出来呢?就我所知,我不能把它塞进另一条线,所以我被难住了。如果您有任何帮助,我们将不胜感激。您需要使用线程中的runOnUiThread来访问视图并对其进行更新/编辑 runOnUiThread(new Runnable() {
那么,一旦线程完成,我如何让对话显示出来呢?就我所知,我不能把它塞进另一条线,所以我被难住了。如果您有任何帮助,我们将不胜感激。您需要使用线程中的runOnUiThread来访问视图并对其进行更新/编辑
runOnUiThread(new Runnable() {
@Override
public void run() {
btn.setText("#");
//show your dialog here
//do your work here
}
});
如果您使用的是片段,只需在onCreate()中创建处理程序的对象之前添加
getActivity()
然后
在要显示对话框或更新任何UI视图的线程内编写以下代码
mHandler.post(new Runnable() {
public void run(){
AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);
//Add all dialog prepaation code
}
});
有关更多信息,请参阅
mHandler.post(new Runnable() {
public void run(){
AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);
//Add all dialog prepaation code
}
});