Android 谷歌 开源 通信框架 VOLLEY(六)——应用实例
2015-08-05 14:44
761 查看
五、应用实例
package com.example.test; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.Volley; import android.content.Context; public class VolleyUtils { private static VolleyUtils mUtils; private Context mContext; private RequestQueue mQueue; private VolleyUtils(Context context){ mContext = context.getApplicationContext(); mQueue = Volley.newRequestQueue(mContext); mQueue.start(); } public static VolleyUtils getInstance(Context context){ if(null == mUtils){ synchronized (VolleyUtils.class) { if(null == mUtils){ mUtils = new VolleyUtils(context); } } } return mUtils; } public void addRequest(Request request,Context context){ request.setTag(context); mQueue.add(request); } public void cancelAllReq(Context context){ //某个Activity/Service的上下文 //这样只会取消对应界面的Request if(mQueue != null){ mQueue.cancelAll(context); } } }
package com.example.test; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class MainActivity extends Activity { private RequestQueue mReqQueue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mReqQueue = Volley.newRequestQueue(this); //一个请求队列绑定一个Activity if(mReqQueue!=null){ mReqQueue.start(); //启动请求队列,不断提取请求信息 } } @Override protected void onStart() { super.onStart(); String url = "www.baidu.com"; //成功回调函数 Response.Listener<String> successListener = new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d("TAG",response.toString()); } }; //失败回调函数 Response.ErrorListener failListener = new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("TAG", error.toString()); } }; //创建请求 StringRequest mRequest = new StringRequest(url, successListener, failListener); //添加进请求队列 mReqQueue.add(mRequest); } @Override protected void onDestroy() { if(mReqQueue!=null){ //请求队列解绑 mReqQueue.stop(); mReqQueue = null; } super.onDestroy(); } }
六、框架总结
单列优点:
1、提供了对唯一实例的受控访问。对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等。
2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。
相关文章推荐
- Android图片下载缓存库picasso解析
- Android 自定义ViewGroup 实现流式布局
- 深入解析Android的自定义布局
- Android L 5.0 上紧急电话EmergencyCall与普通电话在MO流程上的区别
- Android学习笔记——声明
- Android init进程——属性服务
- android 问题集锦
- Android编译过程详解(三)
- Android 图形:绘制渐变色奥运五环图形,游戏文字,验证码,Matrix旋转,缩放,倾斜,平移等
- Android编译过程详解(二)
- Android编译过程详解(一)
- Android优化之代码优化
- android studio sdk更新 (2015-8-5)
- Android学习笔记——Android生命周期
- Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
- 终结android开发关于R文件的报错
- 一个简单的ExpandableView例子
- 9个Web工具提高Android开发效率
- android Failed to pull selection:在cmd里使用命令pull复制文件 \platf orm-tools>adb pull /storage/1.mp4 e:/1.mp
- Android 谷歌 开源 通信框架 VOLLEY(四)——定制请求