带线程的对话消息
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 .
我正在开发 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 .