步骤:
1,自定义一个类并继承Application类
2,实现以下方法:
public class MyApplication extends Application{
// 建立请求队列
public static RequestQueue queue;
@Override
public void onCreate() {
super.onCreate();
queue = Volley.newRequestQueue(getApplicationContext());
}
public static RequestQueue getHttpQueue() {
return queue;
}
}
3,在Activity中实现Get请求和Post请求:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// GET请求
VolleyGet();
// POST请求
VolleyPost();
}
// 定义POST请求的方法
private void VolleyPost() {
// 请求地址
String url = "http://ce.sysu.edu.cn/hope/";
// 创建StringRequest,定义字符串请求的请求方式为POST,
StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
// 请求成功后执行的函数
@Override
public void onResponse(String s) {
// 打印出POST请求返回的字符串
Toast.makeText(MainActivity.this, "POST: " + s, Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
// 请求失败时执行的函数
@Override
public void onErrorResponse(VolleyError volleyError) {
}
}){
// 定义请求数据
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> hashMap = new HashMap<String, String>();
hashMap.put("phone", "11111");
return hashMap;
}
};
// 设置该请求的标签
request.setTag("abcPost");
// 将请求添加到队列中
MyApplication.getHttpQueue().add(request);
}
// 定义GET请求的方法
private void VolleyGet() {
// 定义请求地址
String url = "http://ce.sysu.edu.cn/hope/";
StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
// 打印出GET请求返回的字符串
Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
});
// 设置该请求的标签
request.setTag("abcGet");
// 将请求添加到队列中
MyApplication.getHttpQueue().add(request);
}
}
4,关闭请求在onstop周期方法中操作
@Override
protected void onStop() {
super.onStop();
mRequestQueue.cancelAll(this);
}
5,如果关闭特定的标签的请求自定义onstop方法
// 网络请求标签为”abcGet”
public void onStop() {
super.onStop();
MyApplication.getHttpQueues.cancelAll(“abcGet”);
}
6,注意一定要在列表清单里进行注册自定义的Application类和添加权限