2

我正在尝试运行一个 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());
});
4

1 回答 1

0

为此使用 ayncTask

class 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。

于 2012-11-01T16:50:27.947 回答