带线程的对话消息

Dialog message with Threads

我正在开发 android 应用程序,其中有一个登录按钮 onclick,它将在线程中从 Internet 获取一些数据并在下一页中显示。当它获取数据时,我正在显示一个显示消息 "Loading...." 的对话框,但是当我单击按钮时线程在后台执行但它没有显示对话框 :( 页面看起来像是被击中了。这是我正在使用的一段代码。

                   showdialog();

                    //**********************
                        Thread  t = new Thread(){
                        public void run(){
                            new Downloader().DownloadHandler();
                        }
                    };

                    t.start();

                    t.join();
                    _dialog.cancel();
                    Intent intent = new Intent(context, MainActivity.class);
                           startActivity(intent);   
}
public void showdialog()
 {
 _dialog = ProgressDialog.show(this, "Loading.....", "Please wait, we are on job.", true);
}

如果他们有任何其他更好的方式来实现相同/或任何其他向用户显示内容正在发送的最佳方式,请分享。 如果他们还有其他更好的,请告诉我。

由于

而未显示
 t.join();

join 暂停 ui 线程并使其等待直到 t 完成执行。您应该使用另一种方法,例如您可以实现委托模式,以通知 UI 线程您的线程已完成执行,并且您想关闭对话框并启动一个新的 activity .