在asyncTAsk

问题描述

此程序中回调的用途是什么?回调不为空意味着什么? 这是代码

这是仅使用Volley Library接受JSON数据的类,开发人员在其中添加了引人入胜的(callback!= null)语句。我使用了asyncTask。我不明白他是如何在程序中使用它的。

private ArrayList<Question> questionArrayList= new ArrayList<>();

    public List<Question> getQuestions (final answerWithAsyncTask callback){
        JsonArrayRequest jsonArrayRequest =new JsonArrayRequest(Request.Method.GET,url,(String) null,new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        for(int i=0;i<response.length();i++){
                            Question question = new Question();
                            try {
                                question.setQuestionId(response.getJSONArray(i).getString(0));
                                question.setTorF(response.getJSONArray(i).getBoolean(1));
                                questionArrayList.add(question);
                            } catch (JSONException e) {
                                e.printstacktrace();
                            }
                        }
                    if(null != callback) callback.asyncme(questionArrayList); //What does this mean?
                    }
                },new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                    }
                });
        AppController.getInstance().addToRequestQueue(jsonArrayRequest);
        return questionArrayList;

这是下面的 answerWithAsyncTask 界面。这是开发人员创建的用作asyncTask的接口。尽管实际上我不理解操作方式,但不扩展到AsyncTask接口类。

public interface answerWithAsyncTask {
    public void asyncme(ArrayList<Question> arrayList);
}

这是下面的 MainActivity 类。在此,我在类getQuestions()调用方法QuestionBank()。该方法还需要实现answerrWithAsyncTask接口。

 new QuestionBank().getQuestions(new answerWithAsyncTask() {
           @Override
           public void asyncme(ArrayList<Question> arrayList) {
               Log.d("TAG","Message "  +arrayList);
           }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)