volley特性 :

   1>使用volley开源库进行网络访问,使网络访问更简单,快速,健壮

   2>可以将网络访问与activity生命周期相关联

1.环境

    AndroidStudio 2.1正式版

   volley.jar

   关于将volley.jar导入androidStudio网上有很多教程,很简单,此处省略

2.开始使用volley库进行网络访问

    1> 创建一个访问队列

   

package com.example.zhaoyun.usingvolley;import android.app.Application;import com.android.volley.RequestQueue;import com.android.volley.toolbox.Volley;//创建一个请求队列public class Myapplication extends Application {    @Override    public void onCreate() {        super.onCreate();        //初始化一个请求队列        queue = Volley.newRequestQueue(this);    }    //外部可以通过这个方法获取请求队列    public static RequestQueue getHttpQueue(){        return queue;    }    public static RequestQueue queue;}

    2>创建一个GET,POST请求并添加到队列里进行网络请求,并在activity退出时停止网络访问

  

package com.example.zhaoyun.usingvolley;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;import com.android.volley.AuthFailureError;import com.android.volley.Request;import com.android.volley.Response;import com.android.volley.VolleyError;import com.android.volley.toolbox.StringRequest;import java.util.HashMap;import java.util.Map;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btnRequest = (Button) findViewById(R.id.btnRequest);        btnRequest.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                volley_Post();            }        });    }    //创建一个Get请求    private void volley_Get(){        //Get方式访问时须将请求参数写在url里        String url = "http://10.150.249.211:8080/TestServer/api.jsp?action=login&machine_id=1&";        StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener() {            @Override            public void onResponse(String s) {//请求成功回调                Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();            }        }, new Response.ErrorListener() {//请求失败回调            @Override            public void onErrorResponse(VolleyError volleyError) {                Toast.makeText(MainActivity.this,"请求失败",Toast.LENGTH_SHORT).show();            }        });        //设置请求标签        request.setTag("abcGet");        //将请求添加到队列        Myapplication.getHttpQueue().add(request);    }    //创建一个Post请求    private void volley_Post(){        String url = "http://10.150.249.211:8080/TestServer/api.jsp";        StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener() {            @Override            public void onResponse(String s) {//请求成功回调                Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();            }        }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError volleyError) {//请求失败回调                Toast.makeText(MainActivity.this,"请求失败",Toast.LENGTH_SHORT).show();            }        }){            @Override            protected Map getParams() throws AuthFailureError {//创建请求参数                HashMap map = new HashMap();                map.put("action","login");                map.put("machine_id","1");                return map;            }        };        request.setTag("abcPost");        Myapplication.getHttpQueue().add(request);    }    //volley特性二:可以与activity生命周期相关联    @Override    protected void onStop() {        super.onStop();        //通过前面设置的Tag,取消创建的volley_Get请求        Myapplication.getHttpQueue().cancelAll("abcGet");        //通过前面设置的Tag,取消创建的volley_Post请求        Myapplication.getHttpQueue().cancelAll("abcPost");    }    private Button btnRequest;}

    3>测试:本示例使用一个Button点击进行网络访问来进行测试,示例中的url是我在另一个Demo里写的本地测试服务器的url,结果用Toast展示

         


  

  

  

更多相关文章

  1. Android中OkHttp的使用(详解)
  2. 网页无法打开...因为:net:ERR_CLEARTEXT_NOT_PERMITTED错误解决办
  3. Android(安卓)RxJava+Retrofit2+RxBinding
  4. android基于注解实现类似spring服务端框架
  5. 学习笔记:Android中使用网络技术的方法(webview、httpurlconnectio
  6. EasyPermission Android(安卓)6.0 最简洁的权限框架
  7. Python 访问 Java 类
  8. android Xutils Http模块分析
  9. Android中进行https请求信任证书问题(效率解决,小白适用)

随机推荐

  1. 利用pt-heartbeat监控MySQL的复制延迟详
  2. 解决MySQL中IN子查询会导致无法使用索引
  3. CentOS6.7 mysql5.6.33修改数据文件位置
  4. 简述MySQL与Oracle的区别
  5. 关于Win10下MySQL5.7.17免安装版基本配置
  6. Win7 64位 mysql 5.7下载安装常见问题小
  7. 详解MySQL主从复制读写分离搭建
  8. MySQL 去除重复数据实例详解
  9. MySQL中配置文件my.cnf因权限问题导致无
  10. Android开发实例详解之IMF(Android(安卓)S