五月份的Google I/O 2013开发者大会上,Google发布了开源的网络框架volley,听说反应很好,因此决定花点时间研究一下。
Volley is a library that makes networking for Android apps easier and most importantly, faster.(From:https://developers.google.com/events/io/sessions/325304728)。这个句话还是比较抽象的,更快更容易体现在哪些方面,在什么时候使用?这些都需要我们来慢慢了解~~
volley获取地址(如果文中所列地址访问不了,请自行想办法,你该懂得):
git clone https://android.googlesource.com/platform/frameworks/volley
下载下来之后,你可以把它作为一个library导入你的项目,或者打包之后导入你的项目,这样我们就可以使用了。我下载的源码和生成的jar可以在这里下载。
public class MainActivity extends Activity implements OnClickListener { private static final String URL = "http://www.baidu.com/"; private RequestQueue mQueue; // volley的请求队列 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 通过此种方式拿到请求队列,当然实际使用中我们不会这么做,通常会作为一个全局变量来使用 mQueue = Volley.newRequestQueue(getApplicationContext()); } @Override public void onClick(View v) { volleyRequest(); } /** * 创建一个请求,这里我们做一个最简单的通过GET方式请求网页源码的操作。请求成功后打印结果。 */ private void volleyRequest() { StringRequest request = new StringRequest(Method.GET, URL, new Listener<String>() { @Override public void onResponse(String arg0) { Toast.makeText(getApplicationContext(), arg0, Toast.LENGTH_LONG).show(); Log.d("onResponse", arg0); } }, new ErrorListener() { @Override public void onErrorResponse(VolleyError arg0) { Toast.makeText(getApplicationContext(), arg0.toString(), Toast.LENGTH_LONG).show(); Log.d("onErrorResponse", arg0.toString()); } }); mQueue.add(request); } }
相信你已经对这个流程有了大概的认识,的确很简单,想要的结果就这么出来了,而且也没有在主线程中创建一个子线程来跑请求的代码。可能你会有些疑问了,GET请求通过URL来传递参数,我们可以把参数直接加在字符串后面,那POST请求呢?还有就是volley就这些功能吗?还有其他的吗?她的优点在哪些方面体现?哈哈,这篇就说这些,下篇继续~~
最后在补充一下volley发布会的视频和一个PDF(也就是最上面那个页面中的内容),下载点这里:http://pan.baidu.com/s/1dDyz23v。