2、volley 官方教程-发送一个简单的请求
来源:互联网 发布:巨人网络借壳辽宁成大 编辑:程序博客网 时间:2024/05/16 11:18
文章摘要
1、通过Volley 发送简单请求的案例
2、取消Volley请求
英文文献
可以通过创建一个RequestQueue并传递Request对象来使用Volley。RequestQueue管理用于运行网络操作,读取和写入缓存以及解析响应的工作线程。 请求对原始响应进行解析,并且Volley负责将已解析的响应分派回主线程进行传递。
本文通过Volley 发送一个简单的请求,步骤如下:
一、添加Internet权限
使用Volley,你必须添加 android.permission.INTERNET权限您的应用程序的清单。没有这一点,你的应用程序将无法连接到网络。
<uses-permission android:name="android.permission.INTERNET" />
二、使用newRequestQueue
Volley 提供了一个方便的方法Volley.newRequestQueue,设置了一个 RequestQueue对你来说,使用默认值,并启动队列。例如:
final TextView mTextView = (TextView) findViewById(R.id.text);...// Instantiate the RequestQueue.RequestQueue queue = Volley.newRequestQueue(this);String url ="http://www.google.com";// Request a string response from the provided URL.StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // Display the first 500 characters of the response string. mTextView.setText("Response is: "+ response.substring(0,500)); }}, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { mTextView.setText("That didn't work!"); }});// Add the request to the RequestQueue.queue.add(stringRequest);
Volley总是提供在主线程解析的响应。运行在主线程上是方便用于填充UI控件与接收到的数据,你可以随意修改UI直接从您的响应处理控制,但它是许多由库,特别是有关取消请求提供了重要的语义尤为关键。
附:运行效果
三、发送请求
要发送请求,只需构造一个请求,并使用add()将其添加到RequestQueue中,如上所示。一旦你添加了请求,它将通过管道移动,得到服务,并且它的原始响应被解析和传递。
- 1、当你调用add()时,Volley运行一个缓存处理线程和一个网络调度线程池。
- 2、当您向队列添加请求时,它由缓存线程获取并分类:如果请求可以从缓存服务,缓存响应将在缓存线程上解析,并且解析的响应将在主线程上传递。
- 3、如果请求无法从缓存服务,则将其放置在网络队列上。第一个可用的网络线程接收来自队列的请求,执行HTTP事务,解析工作线程上的响应,将响应写入缓存,并将解析的响应发回主线程进行传递。
请注意,诸如阻塞I / O和解析/解码等昂贵的操作在工作线程上完成。您可以从任何线程添加请求,但响应始终在主线程上传递。
四、取消请求
要取消请求,请在Request对象上调用cancel()。一旦取消,Volley保证您的Response Handler程序将永远不会被调用,请求会从中释放。这在实践中意味着您可以在Activity的onStop()方法中取消所有待处理的请求,并且在来处理响应处理程序时不必对getActivity()== null进行检查,是否调用了onSaveInstanceState()、是否已调用其他释放资源等生命周期方法。
要利用此行为,您通常必须跟踪所有正在运行的请求,以便能够在适当的时间取消它们。有一个更简单的方法:您可以将标记对象与每个请求相关联。然后,您可以使用此标记来提供要取消的请求范围。例如,您可以使用他们代表的活动来标记所有请求,并从onStop()调用requestQueue.cancelAll(this)。同样,您可以使用其各自的选项卡在ViewPager选项卡中标记所有缩略图请求,并在滑动上取消以确保新标签未被来自另一个的请求所阻止。
这是一个使用标记的字符串值的示例:
- 1、定义你的标签,并把它添加到您的要求。
public static final String TAG = "MyTag";StringRequest stringRequest; // Assume this exists.RequestQueue mRequestQueue; // Assume this exists.// Set the tag on the request.stringRequest.setTag(TAG);// Add the request to the RequestQueue.mRequestQueue.add(stringRequest);
- 2、在您的活动的onStop()方法,取消有这个标记的所有请求。
protected void onStop () { super.onStop(); if (mRequestQueue != null) { mRequestQueue.cancelAll(TAG); }}
注意:只是取消了请求Request,并不会取消Request Handler。
关注我的技术公众号,查看更多优质技术文章推送
微信扫一扫下方二维码即可关注:
- 2、volley 官方教程-发送一个简单的请求
- 3、volley 官方教程-建立一个请求队列
- 4、volley 官方教程-中标准请求的使用
- 一个简单的volley网络请求
- 5、volley 官方教程-自定义请求
- Android Training - Volley(Lesson 1 - 发送简单的请求)
- Volley发送简单的网络请求(Sending a Simple Request)
- Jquery 发送一个简单的form请求
- Volley发送StringRequest请求
- Google Volley使用笔记,简单的请求
- Volley简介(1) : 简单的网络请求
- Volley网络请求的简单实用
- Volley网络请求的简单封装使用
- Volley的简单使用--请求网络
- 自定义Volley添加请求头、发送Post请求、Volley的同步和异步
- Volley添加header发送请求
- Android Volley 发送请求Demo
- Android使用volley发送带参数的post请求
- 【dp】树形dp真好玩,hdu6035多校第一场的 colorful tree
- 单链表的增删查改等操作实现
- 浅谈逻辑回归
- G药--链表--增、删
- poj1191 [NOI1999] 棋盘分割(dp)
- 2、volley 官方教程-发送一个简单的请求
- Linux下g++/gdb的简单安装和vim的配置
- selenium+python自动化测试(三)--页面元素定位
- 集合框架——Set(TreeSet练习)
- win10系统 oracle11g的安装流程
- smali 调试方法(动态调试)
- VMware vSphere Web Services SDK编程指南(四)- vSphere API 编程模型(二)
- SVGDemo
- 抛除C++旧印象(一):C#List源码剖析