我正在尝试运行progressDialog,它将在我的应用程序第一次加载时将项目加载到Sqlite数据库中。我收到一条错误消息,因为应用程序在将其余数据加载到数据库之前运行应用程序中的其余代码。
如何在程序其余部分的代码之前确保代码在progressDialog中完成?
LocalDatabase DB = new LocalDatabase();
var dbpd = ProgressDialog.Show(this, "Loading Database", "Please wait Loading Data",true);
ThreadPool.QueueUserWorkItem((s) =>{
DB.createDB();
RunOnUiThread(() => databaseLoaded());
});
答案 0 :(得分:0)
为此
使用asyncTaskclass loadDatabase extends AsyncTask<Void, Void, Void>{
@Override
protected void onPreExecute(Void result) {
//Start the dialog
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... params) {
//Do the database loading part..
return null;
}
@Override
protected void onPostExecute(Void result) {
//Dismiss the dialog and proceed furture.
super.onPostExecute(result);
}
}
要执行此操作,请在其新对象上调用execute。