经过一番尝试,我终于找到了解决办法。使用
AsyncTask
.
我创建了一个扩展
异步任务
.
public class GenerateDataToDisplay extends AsyncTask<String, Integer, Boolean> {
private Context context;
private SQLiteDatabase appDb;
public GenerateDataToDisplay(Context context, SQLiteDatabase appDb){
this.context = context;
this.appDb = appDb;
}
@Override
protected Boolean doInBackground(String[] results) {
return results.length > 0 && generateDataToDisplay(context, appDb, results[0]);
}
}
然后执行这个
异步任务
在调用对话框中,如下所示:
new GenerateDataToDisplay(this, db)
{
@Override
public void onPostExecute(Boolean result) {
//Hide progress bar
progressBar.setVisibility(View.GONE);
//Display data
textView.setText("Got it!!!");
}
}.execute(inputKey);
通过这个实现,对话框立即打开,进度条显示,数据加载开始。(
异步任务
)当数据准备就绪时,进度条将消失并显示数据。
到目前为止对我来说还可以。如果您有更好的建议,请随时发表评论,添加另一个答案。