我正在尝试在处理doInBackground时显示进度微调器。
从我读过的内容来看,这就是我在做的事情:
public class SearchMoviesAsync extends AsyncTask<String, String, JSONArray> {
ProgressDialog pd;
JSONParser jsonParser = new JSONParser();
String URL = "http://localhost:3000/movies/search";
@Override
protected void onPreExecute() {
pd=ProgressDialog.show(SearchActivity.this,"","Please Wait",false);
}
@Override
protected JSONArray doInBackground(String... args) {
try {
HashMap<String, String> params = new HashMap<>();
Log.d("IDFB", args[0]);
Log.d("Search", args[1]);
params.put("idfb", args[0]);
params.put("search", args[1]);
Log.d("request", "starting");
JSONArray json = jsonParser.makeHttpRequest2(
URL, "POST", params);
if (json != null) {
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(JSONArray json) {
pd.dismiss();
}
}
此代码位于我的SearchActivity
。
http请求大约需要10秒才能继续,我想添加此微调器以避免“MyApplication花费太长时间来响应...”
现在微调器没有显示出来。如果我删除pd.dismiss();
中的onPostExecute
,则会在我的请求响应后显示,并且永远不会下车。
由于