繁体   English   中英

如何使凌空请求队列与Java Android异步?

[英]How to make a volley requestqueue async with Java Android?

您好,我正在尝试使用带有volley和foreach项的php api获取数据列表,我发现我在名为GetAll()的方法中将其添加到我的Recipes ArrayList中,这是该方法的代码:

        requestQueue = Volley.newRequestQueue(context);
        StringRequest stringRequest = new StringRequest(Request.Method.GET, 
       "http://192.168.137.1/supcookingapi/api.php?action=selectallrecipes", 
        new Response.Listener<String>() {
        @Override
        public void onResponse(String s) {

            Recettes.clear();
            String[] tableau = s.split("&nb");
            for (String r : tableau) {
                String[] data = r.split(";");
                Recettes.add(new Recette (Integer.parseInt(data[0]), data[1], data[2], java.sql.Time.valueOf(data[3]), data[4],Integer.parseInt( data[5]),Integer.parseInt(data[6]),Integer.parseInt(data[7]),Integer.parseInt(data[8]),data[9]));
            }

            /*Toast.makeText(context, "Total users : " + usersList.size(), Toast.LENGTH_SHORT).show();*/
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError volleyError) {
            Toast.makeText(context, volleyError.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });
    requestQueue.add(stringRequest);

然后我使用Recipe.GetAll()在MainActivity中调用此方法,但是我想等待加载Recettes List中的所有元素,然后在例如可以加载我的页面之后

排球请求已经是异步的,您不需要做任何额外的异步工作。 只需在您的Activity或Fragment中调用您的方法,然后在for循环后立即加载Recettes数组列表,即可执行您想做的任何事情。

您可以使用onPostExecute()方法来调用loadPage()。

@Override
protected void onPostExecute(String result) {
    //Do Your Work
}

当AsyncTask完成执行时,将调用onPostExecute()方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM