我有一个按钮,当我单击它时,我加载了其他 Activity,我调用了一个方法,该方法用来自 Web 服务的数据填充微调器。
好吧,当我单击此按钮时,屏幕保持“冻结”状态,然后显示活动。因此,我认为向用户显示进度对话框可能是一件好事,并在获得 Web 服务的返回后,结束进度对话框。
我尝试使用 Handler,现在我尝试使用 AsyncTask,但是,得到 NullPointerException,因为我的程序在调用 Web 服务之前填充微调器。
private void fillSpinner(){
//runWebService();
new CallWebServiceAsyncTask().execute(null);
mAdapter = new PlanesAdapter(this, allPlanes);
mList.setAdapter(mAdapter);
}
class CallWebServiceAsyncTask extends AsyncTask<Void, Void, Void> {
private ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(PlanesActivity.this);
progressDialog.setMessage("Loading...");
progressDialog.show();
}
@Override
protected Void doInBackground(Void... v) {
runWebService();
return null;
}
@Override
protected void onPostExecute(Void result) {
progressDialog.dismiss();
}
}