【发布时间】:2011-08-06 17:22:55
【问题描述】:
当我的应用程序第一次启动时,它需要进行一些设置。我想在发生这种情况时显示一个进度对话框,因此用户不仅面临无响应的黑屏。我正在尝试使用以下代码执行此操作,但对话框从未显示:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shell);
final ProgressDialog dialog = ProgressDialog.show(WhereWolfActivity.this, getString(R.string.loadingtitle), getString(R.string.loading), true, false);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
if(dbHelper == null)
dbHelper = new WhereWolfOpenHelper(getApplicationContext());
checkUserDetails();
String providers = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
checkLocationProviders(providers);
runOnUiThread(new Runnable(){
@Override
public void run() {
dialog.dismiss();
}
});
}
});
thread.start();
}
如果我删除dialog.dismiss();,则线程完成后会显示对话框。这向我表明 UI 线程被阻止了。任何想法如何解决这一问题?谢谢。
【问题讨论】:
标签: android multithreading progressdialog