java - 如何使 volley requestqueue 与 Java Android 异步?

标签 java android android-asynctask android-volley

您好,我正在尝试使用带有 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);

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

最佳答案

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

关于java - 如何使 volley requestqueue 与 Java Android 异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51153059/

相关文章:

android - 当我关闭应用程序时 AsyncTask 会停止吗?

java - 如何在 Jersey GET 请求中将多个查询参数映射到 bean 的字段?

java - 如何使用 Slick 显示文本?

java - Android ListView 持久化背景

java - Android:分配按钮 id 时获取空值

Android:Asynctask 的doInBackground 方法在长时间延迟后被调用

java - Java 中崩溃报告的策略/技术

java - 看似合理的方法导致 Android 死亡

php - 使用 PHP 将文件(不是消息)从后端服务器推送到 Android 应用

android - 使用 asynctask 返回多个值