有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android异步Tsk未正确执行

我只想在启动屏幕上等待JSON的处理,但这并没有发生。onPostExecute()方法在doinbackground()之后执行。没有时间加载整个JSON

这是我的密码。我首先得到的列表大小为零,然后JSON将开始加载

private class GetContacts extends AsyncTask<Void, Void, Void> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }
    @Override
    protected Void doInBackground(Void... arg0) {
        datalist = new ArrayList<>();
        Log.e("entering","Enter Inside");
        try{
            JsonArrayRequest billionaireReq =
                    new JsonArrayRequest(new ApiURLs().getAll_movies_url() 
                            new Response.Listener<JSONArray>() {
                        @Override
                        public void onResponse(JSONArray response) {
                            Log.e("response", "Response" + response);
                            //Initialize Gson obj to process jason response
                            GsonBuilder gsonBuilder = new GsonBuilder();
                            Gson gson = gsonBuilder.create();
                            // assigning data in model class, we initializing this class as a array type
                            // because the response is in array format
                            HomeModel[] getResult = gson.fromJson(response.toString(), HomeModel[].class);

                            // this loop help us in fetching all the records of model class
                            for (int i = 0; i < getResult.length; i++) {
                                Log.e("response", "Model Values" + getResult[i].toString());
                                //datalist.add(getResult[i]);
                                datalist.add(getResult[i]);
                            }

                            //GlobalData.setGlobal_movie_list(datalist);
                            Log.e("DataLoded","Record Added");
                        }

                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            Log.e("Request","Error" + error);
                        }
                    });

            //This is a queue which is used by Volley to lineup requests
            AppController.getInstance().addToRequestQueue(billionaireReq);
        }
        catch (Exception e){
            Log.e("Error","Error"+e);
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);

        Log.e("Data","DataSize"+datalist.size());

    }
} 

共 (0) 个答案