Объект в асинхронном методе doInBackground пуст - PullRequest
0 голосов
/ 10 мая 2018

В настоящее время у меня есть объект под названием AsyncObj, которому я назначаю 3 массива для последующей передачи в мою асинхронную задачу.В асинхронной задаче у меня есть конструктор, который назначает оба объекта и позднее использует их в методе doInBackground.

Проблема в том, что объект пуст внутри метода doInBackground, и я, похоже, не знаю, почему.Хотя, когда я проверяю размер массива в конструкции AsyncTask, все нормально.

MyObject:

public class AsyncObj {

    ArrayList<Float> valuesX;
    ArrayList<Float> valuesY;
    ArrayList<Float> valuesZ;

    public AsyncObj(ArrayList<Float> a, ArrayList<Float> b, ArrayList<Float> c) {
        this.valuesX = a;
        this.valuesY = b;
        this.valuesZ = c;
    }
}

Мой AsyncTask:

class SendHttp extends AsyncTask<Void,Void,Void> {
    private AsyncObj asyncObj1;

    SendHttp(AsyncObj asyncObj){
        this.asyncObj1 = asyncObj;
        Log.v("TAG","In constructor: "+asyncObj1.valuesX.size());
    }
    protected void onPreExecute() {
    }


    public Void doInBackground(Void...voids){
        Log.v("TAG",""+asyncObj1.valuesX.size());
        String url = createQuery(asyncObj1.valuesX,asyncObj1.valuesY,asyncObj1.valuesZ);
        try{
            final RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
            StringRequest stringRequest = new StringRequest(
                    Request.Method.GET,
                    url,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            Log.v("TAG","Error");
                        }
                    }
            );
            requestQueue.add(stringRequest);
            Log.v("TAG",url);
            Log.v("TAG","In SendHTTP");
        }catch (Exception e){
            Log.v("TAG",e.getMessage());
        }
        return null;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...