显示进度微调器Asynctask

时间:2017-04-29 07:41:21

标签: android android-asynctask

我正在尝试在处理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,则会在我的请求响应后显示,并且永远不会下车。

由于

0 个答案:

没有答案