繁体   English   中英

如何显示另一个线程的警报对话?

[英]How to show alert dialogue from another thread?

我有一个具有链接到布局的类的应用程序。 然后,此布局在另一个线程中运行一个进程,以避免冻结布局。 最终,第二个线程中的代码应该显示第一个线程中的布局对话框。 代码正在运行。 我知道这一点是因为我在其末尾添加了打印声明,但没有显示对话。

那么,一旦线程完成,如何使对话框显示出来? 据我所知,我不能只是将其放入另一个线程中,所以我很困惑。 任何帮助,将不胜感激。

在onCreate()中创建Handler对象

 mHandler=new Handler();

然后

在您要显示对话框或更新任何UI视图的线程内编写以下代码。

mHandler.post(new Runnable() {
    public void run(){

        AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);
        //Add all dialog prepaation code
    }
});

有关更多信息,请参阅Android中的后台处理。

您需要使用线程中的runOnUiThread来访问您的视图并对其进行更新/编辑。

runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        btn.setText("#");
                        //show your dialog here
                       //do your work here
                    }
                });

如果您使用的是片段,只需在runOnUiThread之前添加getActivity()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM