您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > LoonAndroid说明示文档(1.0.1版)
LoonAndroid说明文档白皮书----2014年-5月23日作者:lic源程序编写工程师:panc技术翻译支持:panc写在文档之前:此文档根据当前编写日期来编写,后期源程序更改将持续跟进。此文档仅限公司内部交流使用,如有其他人拿做其它商业用途产生其它影响,本人概不负责。程序如有雷同,纯属虚构。程序介绍:程序大体拥有几大常用模块的封装,包括网络请求集成框架,控件View注解,数据库常用方法集成,图片下载控件,通用适配器,文件下载,通知集成,ListView下拉刷新等等。其中功能还在持续完善添加中@panc,此程序在本公司最终解释权归panc所有,版本维护信息请咨询@pan或发送邮件panc@bluemobi.cn。1程序集成到项目工程使用。1集成打开安卓开发集成IDE(推荐使用最常用的安卓应用开发工具Eclipse,下面实例只针对eclipse讲解,其它工具请参见想关工具官方文档),如下图1.1,将程序导入到eclipse,其中两种方式加入到自己工程项目中,1:右键--preferences---Android--勾选IsLibrary。然后在自己的项目中右键--preferences---Android--Add选中Ioc_Android,即可使用。2:右键项目--Export,将项目打包成jar文件(其中除了com.android.pc.ioc.a.demo包名之外,其他必须全部打包进jar),本项目中添加到lib,buildpath流程。1.12使用在自己项目的Application中进行框架初始化其中Ioc.getIoc().init(this)是整个框架的入口必须在super.onCreate()之前调用2网络传输2.1网络请求网络请求模块分为两大部分一:手动判断返回状态二:自动判断返回状态结果2.1.1返回对象ResponseEntityResponseEntity这个类包含了所有返回结果相关的信息其中每个方法都可以用get获取set进行设置Url表示你提交的请求Content表示返回数据的字符串Cookies表示从请求中获取的cookiesParams表示你提交的参数Status表示请求结果的状态(主要是用来处理异常情况)其值有如下几种其中result_ok表示请求成功result_net_err表示请求失败这里所有的请求失败全部归结为网络问题Key用来区分来源于哪个接口2.1.2请求属性配置InternetConfigInternetConfig这个类包含了所有请求配置相关的信息设置是否从请求中拿取cookies设置以后可以从ResponseEntity获取cookies设置请求头这些键值对会附加在请求头中传递给服务器设置请求的编码格式轮询模式下的轮询间隔时间单位为秒soap请求时候设置的域空间一般我们公司的soap接口无需设置默认为设置连接超时时间对于异步请求当多个请求公用一个回调的时候用这个来进行区分你可以从返回结果ResponseEntity中获得设置的这个key来判断设置文件上传提交的进度条监听2.1.3手动判断返回状态2.1.3.1同步请求(get,post,soap,form表单)○1get同步请求你可以从ResponseEntity中拿取来判断请求是否成功然后通过下面的方法拿取请求结果参数可以以键值对传递进去如果需要设置参数如下○2post同步请求Post请求和get请求一样只需要把改为即可○3soap同步请求其中第一个为url,第二个为参数(可以不设置),第三个为配置(可以不设置)第四个为请求方法其中如果服务器有需要请设置○4表单提交其中params为表单参数,files为上传文件键值对(可以不传),config为配置(可以不传)如果要监控上传进度,请在InternetConfig中设置Progress目前上传理论支持最大2GB文件2.1.3.2异步请求(get,post,soap,form表单)和上面的都类似只是在所有接口前面添加了ajaxGet为FastHttp.ajaxGetPost为FastHttp.ajaxSoap为FastHttp.ajaxWebServerForm为FastHttp.ajaxForm其中每个方法都多了一个参数为这个AjaxCallBack是用来处理异步请求回调其中可以获取getStatus来判断是否请求成功其中如果多个请求公用一个AjaxCallBack,那么getKey来判断是哪个请求其中stop是用来表示是否取消回调,比如在activity中可以用this.isDestroyed()来判断当前activity来判断当前页面是否被销毁那样就不需要回调了其中轮询只需要把AjaxCallBack换成AjaxTimeCallBack即可默认是30秒一次如果需要请在internetconfig中设置GetIsContinue表示是否继续轮询,可以来终止轮询2.1.4自动判断返回状态其核心还是调用的FastHttp的接口如下和FastHttp的区别在于FastHttp改为FastHttpHanderAjaxCallBack改为this其中AjaxCallBack已经不需要了你只需要在当前类下随便建一个参数为ResponseEntity的方法然后加上@InjectHttp注解即可其中InjectHttp表示请求结果总的回调其中@InjectHttpOk表示成功的回调其中1对应internetconfig中的setkey如果这里不设置1则会走@InjectHttp注解的方法其中@InjectHttpErr表示失败的回调其中value是多个参数的回调可以对应多个请求的不同的setkey网络请求失败会走这个方法如果设置的key在这里不存在即走@InjectHttp注解的方法返回的结果可以调用Handler_Json来处理结果它的方法JsonToBean表示结果转为实体类Bean它的方法JsonToCollection表示结果转为实体类HashMap提示如果不是发布状态可以打印logApplicationBean.logger.d(obj.toString());签名发布以后会自动隐藏打印,记得在签名前请去掉自动编译3下载3.1说明下载的主要类文件是FileLoaderManager,其中其他有关类文件FileResultEntity(文件下载结果类),NotfiEntity顶部通知栏所需要的实体类3.2普通下载3.2.1调用方法其中第一个String为下载的url第二个String为文件存储的路径,可以自定义存储路径(默认状态下没有传入保存路径,程序会自动将文件保存在当前程序包路径下/files/file_(当前时间第四位开始long格式).*。即Android/data/程序包名/......路径下。),其中Int为线程数默认为1(不设置则以单线程下载),其中NotfiEntity为顶部通知栏的参数,如果不传默认为null,则不会有通知栏。3.2.2NotfiEntity其中每个属性都有get和set方法可以对其进行设置,其中layout_id表示你的顶部通知栏布局Layout,其中icon_id,表示顶部通知栏的ICON的imagview的Id,其中progress_id表示进度条的id,表示进度条ProgressBar的ID,progress_txt_id表示下载的进度显示TextView的ID,clazz表示下载完成以后点击顶部通知栏跳转的activity实例:3.2.3FileResultEntity当我们开始下载以后,如何得知下载情况的实时回调,那么我们就要借助eventbus了首先EventBuseventBus=EventBus.getDefault();然后eventBus.register(this);最后在你的当前类中加一个方法publicvoidonEventMainThread(FileResultEntityentity){}这个方法中你可以得到实时的下载回调事件其中FileResultEntity参数如下Url:下载地址Progress:下载进度Status:下载状态其中状态有4种publicstaticfinalintstatus_loading=0;//下载中publicstaticfinalintstatus_start=1;//开始publicstaticfinalintstatus_fail=2;//失败publicstaticfinalintstatus_sucess=3;//成功Length:下载总共大小LoadedLength:已经下载了多少File:下载后存储的文件Range:是否支持断点下载实例:3.3版本更新下载版本更新下载和普通下载调用方法以及回调基本上都一样最主要是它下载完成以后会自动跳转到安装界面3.4其他方法FileLoaderManager.hideNotif(url);关闭顶部通知栏FileLoaderManager.showNotif(url,NotfiEntity);显示顶部通知栏FileLoaderManager.stop(url);停止下载FileLoaderManager.getAllDownload();获取所有下载记录FileLoaderManager.getAllFailureDownload();失败下载记录FileLoaderManager.getAllFinishDownload();成功下载记录FileLoaderManagersetProxyServer设置代理的IPsetProxyPort设置代理的端口setUseProxy设置是否使用代理setProxyUser设置代理的用户名setProxyPassword设置代理的密码4数据库操作1数据库操作数据库操作请参照下面示例:DbUtilsdb=DbUtils.create(this);Useruser=newUser();//这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性user.setEmail(wyouflf@qq.com);user.setName(wyouflf);db.save(user);//使用saveBindingId保存实体时会为实体的id赋值...//查找Parententity=db.findById(Parent.class,parent.getId());Parententity=db.findFirst(entity);//通过entity的属性查找ListParentlist=db.findAll(entity);//通过entity的属性查找ListParentlist=db.findAll(Parent.class);//通过类型查找ParentParent=db.findFirst(Selector.from(Parent.class).where(name,=,test));//ISNULLParentParent=db.findFirst(Selector.from(Parent.class).where(name,=,null));//ISNOTNULLParentParent=db.findFirst(Selector.from(Parent.class).where(name,!=,null));//WHEREid54AND(age20ORage30)ORDERBYidLIMITpageSizeOFFSETpageOffsetListParentlist=db.findAll(Selector.from(Parent.class).where(id,,54).and(WhereBuilder.b(age,,20).or(age,,30)).orderBy(id).limit(pageSize).offset(pageSize*pageIndex));//op为in时,最后一个
本文标题:LoonAndroid说明示文档(1.0.1版)
链接地址:https://www.777doc.com/doc-4220211 .html