个人技术博客

一. Volley框架

在进行和服务器交互的时候需要发送请求,发现了volley这个好用易上手的框架。volley是一个异步网络通信框架,它的优点在于轻量级、适用于量小但传送频繁的请求操作

搭建请求的第一步就是新建一个请求队列
RequestQueue queue = Volley.newRequestQueue(this)
在后续通信过程中,可以把每次的请求都加入到请求队列中,一次发送,减少资源的浪费,通常一个活动一个请求队列就够了。
每发送一条http请求,就需要创建一个请求对象,volley提供了StringRequestJsonRequestImageRequest等针对不同格式请求的对象,完成请求的用法大同小异,都需要最基本的三步:
1. 创建一个RequestQueue对象
2. 创建一个request对象
3. 将request对象添加到RequestQueue队列里去
以StringRequest为例,下面是它的基本结构
StringRequest stringRequest = new StringRequest("http://www.baidu.com", new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d("TAG", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("TAG", error.getMessage(), error); } });
但是在团队项目中我们需要传参数即要以post方式发送,并且约定发送和接收格式都是json,在尝试用JsonRequest 的时候我还是遇到了一些问题:
1.新建JsonRequest对象的时候 需要实例化一个JSONObject对象然后作为参数传进去,不能单纯地将那个设为null
JSONObject jsonObject=new JSONObject(map); JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.POST,"http://www.baidu.com", jsonObject, new Response.Listener<JSONObject>()

  1. RequestQueue queue = Volley.newRequestQueue(this) 这个this指活动上下文,我在写的时候写成了getApplicationContext()虽然验证无误但是后来发现这个指整个app的上下文,如果简单粗暴地这么写容易在后续创建多个请求队列时发生错误,于是改成了login1Activity.this 当前活动的 上下文。
  2. 加入队列后突然发现不知道它是什么时候发送这些请求的,然后看了源码,发现在创建请求队列的方法里封装了start()函数,在外面再次写start()也可能会出现错误。
  3. 以json格式传递参数在这里显得不是很友好,需要先将数据放入map对象,再将map对象转为jsonObject对象(这里真是卡了好久...)
    Map<String,String> map=new HashMap<String, String>(); //以json串方式提交参数 map.put("phonenum",myName); map.put("password",myPwd); JSONObject jsonObject=new JSONObject(map);

参考来源:
http://blog.csdn.net/guolin_blog/article/details/17482095
http://blog.csdn.net/nugongahou110/article/details/46876473

二. 关于Android Studio

额嗯,使用as的时候真是出现了无数的问题,开始很多都是因为gradle文件不同步导致的,解决过程中又因为很多时候的不仔细导致在上面耗了大量时间。
导入项目卡死的话,最大的原因就是gradle文件不一致,这时最好的办法:***
条件不允许的话,可以到这个网站http://services.gradle.org/distributions/ 去下载对应的版本,然后放到如下的目录C:\Users\用户名\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst
(a4w5fzrkeut1ox71xslb49gst这个文件夹名称因人而异)

或者是将当前版本改为自己的gradle版本号
这里有个简单粗暴的方法就是将自己本地的一个项目里的和gradle有关的文件都替换掉要打开项目 的gradle文件 再导入项目,导入后会有提示下载一些工具只要按提示来即可
1227513-20171116215456093-713983598.png

还有一点是导入项目的时候要选择build.gradle 打开,导入库 的时候要选择项目名称打开,这一点虽然后来我在导项目的时候选择名称好像也没什么问题。。。不太懂

安装完as后我的c盘就有点紧脏,额昂这里可以配置一下android studio的缓存文件夹,这里贴个教程 http://blog.csdn.net/qiujuer/article/details/44160127

转载于:https://www.cnblogs.com/zyccccla/p/7844179.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件构造 第一章第二节 软件开发的质量属性

​软件构造 第一章第二节 软件开发的质量属性 1.软件系统质量指标 External quality factors affect users 外部质量因素影响用户 Internal quality factors affect the software itself and its developers 内部质量因素影响软件本身和它的开发者 External quality results fr…

css --- 让不同的浏览器加载不同的CSS

// 通过条件注释让不同的浏览器加载不同的CSS <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]><!--> 所有的IE可识别 <![endif]--> <!--[if IE 6]> 仅IE6可识别 <![endif]--> <!--[if lt IE 6]> I…

정규식 문법 정리.초급

abcdefg a검색 abca abcbca abcabcdeda Cc 한개 캐릭터 [a] [ac] [a-c] [Cc] 수량자 1>* ( 0~무한대) 2> (1~무한대) 3.? () 4 {1,2} {Min,Max} [패턴]*{} 수량자.패턴…

css自媒体查询

准备工作1&#xff1a;设置Meta标签 首先我们在使用Media的时候需要先设置下面这段代码&#xff0c;来兼容移动设备的展示效果&#xff1a; <meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalableno">…

css --- 清除浮动

有时我们需要用到浮动,但又不想由于浮动的某些特性影响布局,这时就需要清除浮动 清除浮动主要应用的是CSS中的clear属性,clear属性定义了元素的哪一侧不允许出现浮动元素. 下面是两种应用比较广泛的清除浮动的方法: // 在需要的地方添加定义了clear:both的空标签 <style>…

数据可视化实现技术(canvas/svg/webGL)

数据可视化的实现技术和工具比较转载于:https://www.cnblogs.com/knuzy/p/9215632.html

Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...

http://www.cnblogs.com/huangcong/archis.strip() .lstrip() .rstrip(,) 去空格及特殊符号复制字符串Python1 #strcpy(sStr1,sStr2)2 sStr1 strcpy3 sStr2 sStr14 sStr1 strcpy25 print sStr2连接字符串Python1 #strcat(sStr1,sStr2)2 sStr1 strcat3 sStr2 append4 sStr1…

java 将一个非空文件夹拷贝到另一个地方

没有处理异常&#xff0c;只是简单的抛出了。需要捕获的需修改一下。 public class Test001 { //把一个文件夹或文件移到另一个地方去。 public static void main(String[] args) throws Exception { File filenew File("D:\\testFolder"); new Test001().copyFileTo…

Python环境 及安装

windows 1、下载安装包 https://www.python.org/downloads/2、安装默认安装路径&#xff1a;C:\python273、配置环境变量【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行&#xff0c;双击】 -->…

MUI主界面菜单同时移动主体部分不出滚动条解决

mOffcanvas(侧滑导航-主界面、菜单同时移动) 生成代码 增加列表滚动OK 增加幻灯片就挂了 百度了半天 没发现问题 后来想起官网的一句话 除顶部导航、底部选项卡两个控件之外&#xff0c;其它控件都建议放在.mui-content控件内&#xff0c;在Hbuilder中输入mbody&#xff0c;可快…

范围查询 BETWEEN AND

查询&#xff1a;从表t_student里 查找 id 在1~10 之间的学生信息&#xff0c;并显示 id,name,age,email 信息 SELECT id,name,age,email FROM t_student WHERE id BETWEEN 1 AND 10转载于:https://www.cnblogs.com/hello-dummy/p/9216720.html

css --- 应用媒介查询制作响应式导航栏

以上导航会自动适应各个尺寸的屏幕 代码如下: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <meta name"apple-mobile-w…

AODV中实施watchdog

1.开启混杂模式&#xff0c;接收邻居转发的所有数据包&#xff0c;不进行MAC过滤&#xff0c;全部 sendToWatchdog(const Packet *p) 2.当前节点转发数据包后&#xff0c;缓存数据包 sendToWatchdog(const Packet *p, int mac_dst) //Start Watchdog Code voidAODV::tap(const …

Drools 7.4.1.Final参考手册(六) 用户手册

用户手册 基础 无状态的知识Session Drools规则引擎拥有大量的用例和功能&#xff0c;我们要如何开始&#xff1f;你无须担心&#xff0c;这些复杂性是分层的&#xff0c;你可以用简单的用例来逐步入门。 无状态Session&#xff0c;无须使用推理&#xff0c;就形成了最简单的用…

css --- 弹性盒子

左右两侧按1:1自适应,中间固定宽度500px // CSS /* 首先定义 container &#xff0c;关注display */ /* webkit 是Chrome、Safari 的浏览器前缀 */ .container{margin: auto;display: -webkit-box;width: 80%&#xff1b;height: 200px; } /* 开始定义左、中、右 */ .left { …

更精炼更专注的RTMPClient客户端EasyRTMPClient,满足直播、转发、分析等各种需求...

现状 EasyRTMPClient&#xff0c;熟悉的朋友就会联想到EasyRTSPClient项目&#xff08;https://github.com/EasyDSS/EasyRTSPClient&#xff09;&#xff0c;EasyRTSPClient从14年中期开始发展&#xff0c;已经迭代发展历时3年多时间&#xff0c;可以说在RTSPClient领域是非常成…

数据操纵语言 ,DML, 增删改

DML(data manipulation language)&#xff1b;数据操纵语言 插入数据&#xff1a;插入数据&#xff1a; 每次只能插入一行数据 INSERT INTO 表名(列名1, 列名2, 列名3....) VALUES (value1, value2, value3....); value与列数一一对应。 #插入一行: INSERT INTO t_student(id,…

bootstrap --- 表格

几个可选类: .table-bordered: 为表格加上边框 .table-striped: 为表格加上斑马效果 .table-hover: 鼠标悬停在表格行上时展现不同得颜色 .table-condensed: 更为紧凑的表格样式 // 导入样式,从bootstrap官网导入CDN // HEAD <link rel"stylesheet" href"…

发现一个小坑的地方,unity的协程,想要停止,必须以字符串启动

今天想要停止一个协成&#xff0c;发现调用 StopCoroutine(ShowDebug()); 竟然不管用&#xff0c;后来看了文档才知道&#xff0c;原来想要停止协成&#xff0c;必须用字符启动协程 StartCoroutine("ShowDebug"); 然后再调用 StopCoroutine("ShowDebug…

mongodb数据库中插入数据

mongodb数据库中插入数据 一&#xff1a;connection 访问集合&#xff1b; 在mongodb数据库中&#xff0c;数据是存储在许多数据集合中&#xff0c;可以使用数据库对象的collection方法访问一个集合。该方法使用如下&#xff1a; db.collection(collectionName, [options], [ca…