个人之前一直以为android studio是ADT bundle中那个studio,理论上是的,不过windows上android studio是基于Eclipse的?估计是我下载的版本不对。今天单独下了mac版本的android studio,整个风格和eclipse完全不一样,人家是基于intellij的IDE开发出来的。android studio的下载地址在这里,苦逼的网络,只能从这里下了。
第一次打开android studio的时候会让你选择如何操作,比如新建android工程。和eclipse不同的是,android studio新建工程的时候可能会更新SDK。这里可能就陷入一个“死循环”,更新SDK需要代理网络,但是还没进入主界面……幸好在创建工程的界面菜单中可以设置网络,这样就可以继续创建工程了。
由于我今天想要尝试下volley,传说中的android网络库,但是在怎么把volley纳入自己工程上弄了好久。后来按照这篇文章的步骤打包,把volley.jar移动到当前工程libs目录中,添加为依赖后就可以用了。至于在苦逼的网络下如何git clone volley的库,可以考虑从volley的master分支上下载tgz包。
下面才是如何使用volley的正题,个人分为以下几部分:
- 常规使用
- 取消任务
- 单例
自定义RequestQueue和Request一般不大用到,有需要可以看这里的文章。下面主要说下常规使用。取消任务主要是一个方法RequestQueue#cancelAll,单例不是volley专属的内容,Java的单例模式一般人太熟悉了。
String url = "http://example.com"; StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { mTvMain.setText(response.substring(0, 100)); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { mTvMain.setText("Error Occurred"); } }); mRequestQueue.add(request);
代码mRequestQueue是RequestQueue的实例。主要流程是创建Request之后加入RequestQueueQueue即可。Request除了StringRequest还有ImageRequest,JsonRequest等等。
最后放到模拟器上看看结果吧,比自己直接写AndroidHttpClient代码要方便很多。