繁体   English   中英

我如何在单个android项目中使用Volley和Loader?

[英]How can i used Volley and Loader in a single android project?

在我的项目中,我首先使用AsyncTask从Internet加载listView中的数据。 之后,我使用Loader使用AsyncTaskLoader从Internet加载数据。 但是现在我发现,凌空是从互联网上获取数据的更好方法。 所以我的问题是如何使用Volley在装载程序中装载数据? 目前,我在加载器的帮助下在listView上显示数据,但是如果我不使用加载器来加载数据,那么使用Volley在listView中加载数据的替代方法是什么?

项目URL: https : //github.com/CSS08/InfiniteNews

您可以为此目的使用Volley StringRequest然后使用QueryResolver类中已有的代码解析响应JSON 请参阅下面的代码示例-这应该使您了解如何将Volley用于您的用途-您可以决定将代码放置在何处-我仅向您提供一些有关如何实现Volley库使用的提示。

try{
        RequestQueue queue = Volley.newRequestQueue(context);           
        StringRequest newsDataRequest = new StringRequest(Request.Method.GET,url, new Listener<String>() {
            @Override
            public void onResponse(String newsDataJson) {                   
                Log.i(TAG, "Got News Articles From Server:: "+newsDataJson);
                //Now process the volley response using your QueryResolver code:
                List <NewsData> newsData = QueryResolver.extractFromJson(newsDataJson);
                //with the newsData - you can now update your adapter - I am using an example here
                 newsDataAdapter.clear();
                // If there is a valid list of {@link NewsData}s, then add them to the adapter's
                // data set. This will trigger the ListView to update.
                if (newsData != null && !newsData.isEmpty()) {
                    newsDataAdapter.addAll(newsData);
                }
            }

        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                //there was an error - you want to print it out here...
            }
        });
        //add the request to queue
        queue.add(newsDataRequest);
    }
    catch(Exception e){
        //some issues here - 
    }

我希望这可以帮助你。 您可以在此处查看基本的Volley教程

取而代之的AsyncTaskLoader ,一个使用AsyncTask在后台下载,您可以编写一个扩展类Loader<NewsData>并在它的onForceLoad()方法排队凌空请求,会做的实际负荷。 然后在Volley的onResponse回调中将结果传递给Loader的deliverResult方法。 这样,您将保留Loader的所有优势并提高网络性能。

暂无
暂无

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

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