拦截器模版附带MVP防止内存泄漏
来源:互联网 发布:上海java薪资水平如何 编辑:程序博客网 时间:2024/05/27 19:27
post请求路径不用加后面的参数,放入Map中就行,公共参数在拦截器中
拦截器:
public class MyInterCeptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); HttpUrl build = request.url().newBuilder().addQueryParameter("source", "android").build(); Request build1 = request.newBuilder().url(build).build(); return chain.proceed(build1); }}
OKHttpUtils:
public class OKHttpUtils { Handler handler = new Handler(); private static volatile OKHttpUtils okhttputils; public static OKHttpUtils getInstence(){ if(null==okhttputils){ synchronized (OKHttpUtils.class){ if(okhttputils==null){ okhttputils = new OKHttpUtils(); } } } return okhttputils; } public void post(String url, Map<String,String> map,final MView mview,final Class clas){ OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(new MyIntercapter()) .build(); FormBody.Builder builder = new FormBody.Builder(); if(map!=null&&!map.isEmpty()){ for(Map.Entry<String,String> entry:map.entrySet()){ builder.add(entry.getKey(),entry.getValue()); } } final Request request = new Request.Builder() .url(url) .post(builder.build()) .build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { mview.onShibai(e); } }); } @Override public void onResponse(Call call, Response response) throws IOException { String string = response.body().string(); Gson gson = new Gson(); final Object o = gson.fromJson(string, clas); handler.post(new Runnable() { @Override public void run() { mview.onChenggong(o); } }); } }); }}
防止内存泄漏:
V层//判断new的P层为不为空,为空调用P层的销毁方法
protected void onDestroy() {
super.onDestroy();
if (presenter != null) {
presenter.detachView();
}
}
P层:
判断V层的接口为不为空,不为空变为空
public void detachView() {
if (null != iv) {
iv = null;
}
}
阅读全文
0 0
- 拦截器模版附带MVP防止内存泄漏
- MVP模式的ListView展示数据,防止内存泄漏
- 封装的OkHttpUtils,拦截器,gsonutils类,解绑(防止内内存泄漏)
- 防止内存泄漏
- flash 防止内存泄漏
- 如何防止内存泄漏
- 防止handler内存泄漏
- 防止内存泄漏
- [android进阶篇]MVP模式优化,防止内存泄漏和空指针问题
- MVP造成的内存泄漏
- 防止handler内存泄漏问题
- BaseAdapter优化防止内存泄漏
- MVP+OKHTTP+拦截器
- Java内存模型-防止内存泄漏
- 浅谈MVP模式应用与内存泄漏
- MVP中存在的内存泄漏问题
- 如何解决MVP内存泄漏的问题
- 如何防止java中的内存泄漏
- 短路和断路
- 信用评分与数据挖掘(一~七)
- 正向代理与反向代理
- Redis 和 Memcache的区别
- FCN制作自己的数据集、训练和测试全流程
- 拦截器模版附带MVP防止内存泄漏
- html 常用的标签
- Retrofit自定义GsonConverter+Exception拦截json解析异常问题
- LeetCode||67. Add Binary
- Android多线程断点续传,简单易实现,
- LeetCode(14)
- 多条目加载的MyAdapter
- 信用卡评分
- 第八讲缩放物体