Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何显示来自其他线程的警报对话?_Java_Android_Multithreading - Fatal编程技术网

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
    }
});