




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用MVPRXANDROIDDROIBAAS打造云后台APP什么想做校园日记前段时间支付宝的校园日记功能火爆异常,但是却昙花一现,可是在社会上还是引起了一阵自媒体浪潮,其实这就是人的本性的释放,人的本性就有喜欢嘚瑟,爱表现自己的成分。在我理解中大部分能火起来的APP都有能抓住人的一部分本性需求,所以我就想开发一个校园日记的APP,让它成为最时尚的大学生社交活动APP,专为广大在校童鞋们打造的校园日记分享软件。可以上传自己的自拍照片、美食图片、心情感想等日记,实现随时随地分享自己,展现自己的需求。APP功能分解为什么选用MVPRXANDROIDDROIBAAS技术架构选型对程序进行架构设计的原因,归根到底是为了提高生产力。通过设计使程序模块化,能够更简单的读懂CODE以及方便维护和测试。整体的APP架构选用MVP来搭建,结合最近比较火热的RXANDROID实现观察者事务模式就能够做到模块内部的高聚合和模块之间的低耦合,模块内被的高聚合。由于开发的应用需要搭建云服务器和数据库,所以也选用了最近比较流行的一站式后端云服务DROIBAAS来实现所有云后台功能。后面会讲到具体用到哪些功能和怎么来使用这些功能。为什么选用MVP模式以上是MVP的工作原理图。其中PRESENTER操作VIEW和MODE都是通过接口来实现直接的调用。传统的MVC模式很难把VIEW和CONTROLLER分开,总是直接在VIEW的事件响应函数里完成了CONTROLLER的代码,而MVP就完全解决了这个问题。MVP的工作流程如下PRESENTER负责逻辑的处理,MODEL提供数据,VIEW负责显示。作为一种新的模式,在MVP中VIEW并不直接使用MODEL,它们之间的通信是通过PRESENTER来进行的,所有的交互都发生在PRESENTER内部。这样的话最大可能降低了VIEW和MODEL之间的耦合性,维护和测试起来都是异常的简单方便。为什么选用RXANDROID最主要是两个字简洁,RXANDROID是RXJAVA的扩展,它的异步调用随着程序逻辑变得越来越复杂,它的链式调用依然能够保持简洁。RXANDROID的回调方法主要有三个,ONNEXT,ONERROR,ONCOMPLETED。ONNEXT对于SUBSCRIBLER我们可以理解为接收数据。ONCOMPLETED观测的事件的队列任务都完成了,当不再有ONNEXT发送数据时,ONCOMPLETED事件被触发。ONERROR当事件异常时响应此方法,一旦此方法被触发,队列自动终止,不再发送任何数据。为什么选用DROIBAAS在这之前我的云后台都来自于阿里云后端工程师,但是我只是个ANDROID工程师,所以我需要一个更加简单方便的云后台生产工具。我选择云后台,希望能满足我以下几个要求服务器环境我不会搭建,所以更别提维护了,比如CENTOSNGINXPHPMYSQL,我也只是听说而已我更不会写SERVER端的CODE,因为我只会安卓APP开发,而且这应用只是我个人开发,也找不到其他人来帮我写SERVERCODE最好能有现成的可视化管理后台,这样以后管理和运营起来也方便花钱尽量少,最好免费,毕竟是个人兴趣和尝试,不希望试错成本太高能一站式尽量一站式,虽然我也可以用友盟的统计极光的推送酷传的代发布百度的广告啥啥啥,不过毕竟麻烦么不是。综合这些需求,我发现最近新鲜出炉的专为APP开发者提供一站式整合云后端的服务BAAS比较适合我来使用。无需租用服务器和开发服务器端程序,只需集成BAAS平台提供相应SDK就能够实现各种云后台的功能,比如云数据库,用户系统搭建,推送通道,用户反馈收集,版本管理和数据统计的功能,这些功能对于APP的开发以及之后的运营都是必须的。目前国内的几家BAAS云服务提供商,比如LEANCLOUD、DROIBAAS、BMOB、MAXLEAP,目前都处于创业阶段,因为本身BAAS还处于一个概念期,到普及还需要一段时间,但是用过之后真心觉得相当好用。我相信选用BAAS来搭建APP的云后台这将是之后个人开发者以及中小企业开发者的趋势。DROIBAAS相比其他几家的优势在于提供沙箱和生产两种模式,沙箱完成调试再发布生产环境上线,避免了调试和测试对正式版本的数据污染DROIOBJECT使用相当的方便,注解的编程方式相比其他几家还是有不错的便利性有渠道和广告背景,APP开发出来之后能够提供一定的推广和变现的帮助文档比较全面而且详细,SDK集成方式简单,打电话咨询过,客服态度不错,很耐心也很专业免费额度相比较其他几家还是比较有优势的,虽然我也不知道会用到多少,但是多一点总归是好的系统框架设计代码架构如下使用MVP模式来开发的好处就是代码架构非常的清晰明了,个人还是比较注重代码的逻辑性以及可读性用到的框架及生产工具日记的展示界面用了SUPERRECYCLERVIEW使RECYCLERVIEW更加容易使用的ANDROID类库图片加载与缓存用了GLIDEDROIBAAS的网络请求都是基于OKHTTP的,所以OKHTTP和OKIO是必须用到的网络框架JSON的生成和解析用的FASTJSON响应式编程用的是RXANDROID高度整合封装的云服务BAAS作为第二代云计算的产物,为APP的云后台开发提供了非常便利的生产工具,提高了开发效率、缩短了上线时间、降低了开发成本,这必将是一个潮流和趋势,我还是比较看好的。所有的云端功能,如推送、自更新、用户反馈、统计、云数据、用户管理功能全部是用DROIBAAS的SDK来实现日记展示UML架构设计MAINACTVITY继承CIRCLECONTRACTVIEW接口,CIRCLEPRESENTER继承CIRCLECONTRACTPRESENTER接口MAINACTVITY生成一个CIRCLEPRESENTER对象同时把自身传入CIRCLEPRESENTERMAINACTVITY调用CIRCLECONTRACTPRESENTER的各种数据获取接口,CIRCLEPRESENTER从云端获取到数据后调用CIRCLECONTRACTVIEW的界面更新接口通知MAINACTIVITY来刷新VIEW整个MVP架构相当的清晰明了,使用MVP最大的好处就在此处,代码简洁,同时简化了ACTIVITY的逻辑,利于以后的调试和单元测试,新功能加起来也非常的方便数据库设计如UML图所示主要是四个主要交互数据类,这个四个类同时也是后DROIBAAS云后台数据库保存的数据类CIRCLEITEM日记内容DATAFAVORTITEM用户点赞DATACOMMETITEM用户评论DATAUSER用户DATA详细代码设计日记MVPRXANDROID代码如下整个工程代码比较多,我在这里只贴了日记展示关键逻辑的代码,整个工程的源码请参考文档最后的GITHUB的链接CIRCLECONTRACTJAVAMODEL和VIEW的中间接口类PUBLICINTERFACECIRCLECONTRACTINTERFACEVIEWEXTENDSBASEVIEWVOIDUPDATE2DELETECIRCLESTRINGCIRCLEIDVOIDUPDATE2ADDFAVORITEINTCIRCLEPOSITION,FAVORTITEMADDITEMVOIDUPDATE2DELETEFAVORTINTCIRCLEPOSITION,STRINGFAVORTIDVOIDUPDATE2ADDCOMMENTINTCIRCLEPOSITION,COMMENTITEMADDITEMVOIDUPDATE2DELETECOMMENTINTCIRCLEPOSITION,STRINGCOMMENTIDVOIDUPDATEEDITTEXTBODYVISIBLEINTVISIBILITY,COMMENTCONFIGCOMMENTCONFIGVOIDUPDATE2LOADDATAINTLOADTYPE,LISTDATASINTERFACEPRESENTERVOIDLOADDATAINTLOADTYPEVOIDDELETECIRCLEFINALSTRINGCIRCLEIDVOIDADDFAVORTFINALINTCIRCLEPOSITION,FINALSTRINGCIRCLEIDVOIDDELETEFAVORTFINALINTCIRCLEPOSITION,FINALSTRINGFAVORTIDVOIDADDCOMMENTSTRINGCONTENT,FINALCOMMENTCONFIGCONFIGVOIDDELETECOMMENTFINALINTCIRCLEPOSITION,FINALSTRINGCOMMENTIDVOIDSHOWEDITTEXTBODYCOMMENTCONFIGCOMMENTCONFIGCIRCLEPRESENTERJAVA此类使用RXANDROID从云端获取数据再发回给VIEW进行异步展示,在这个类中可以看出使用RXANDROID处理异步逻辑非常得心用手,推荐大家使用。PUBLICCLASSCIRCLEPRESENTERIMPLEMENTSCIRCLECONTRACTPRESENTERPRIVATECIRCLECONTRACTVIEWVIEWPRIVATESTATICINTINDEX0PUBLICCIRCLEPRESENTERCIRCLECONTRACTVIEWVIEWTHISVIEWVIEWOVERRIDEPUBLICVOIDLOADDATAFINALINTLOADTYPEIFLOADTYPE1INDEX0GETCIRCLEDATASUBSCRIBEONSCHEDULERSIOOBSERVEONANDROIDSCHEDULERSMAINTHREADSUBSCRIBENEWOBSERVEROVERRIDEPUBLICVOIDONCOMPLETEDVIEWHIDELOADINGOVERRIDEPUBLICVOIDONERRORTHROWABLEEVIEWSHOWTOAST“网络错误“OVERRIDEPUBLICVOIDONNEXTLISTDATAVIEWUPDATE2LOADDATALOADTYPE,DATA/TITLEDELETECIRCLEDESCRIPTION删除动态PARAMCIRCLEIDRETURNVOID返回类型THROWS/OVERRIDEPUBLICVOIDDELETECIRCLEFINALSTRINGCIRCLEIDDELETECIRCLEDATACIRCLEIDSUBSCRIBEONSCHEDULERSIOOBSERVEONANDROIDSCHEDULERSMAINTHREADSUBSCRIBENEWOBSERVEROVERRIDEPUBLICVOIDONCOMPLETEDVIEWHIDELOADINGOVERRIDEPUBLICVOIDONERRORTHROWABLEEVIEWSHOWTOAST“网络错误“OVERRIDEPUBLICVOIDONNEXTBOOLEANRESULTIFRESULTVIEWUPDATE2DELETECIRCLECIRCLEIDELSEVIEWSHOWTOAST“删除数据失败,请重试“/TITLEADDFAVORTDESCRIPTION点赞PARAMCIRCLEPOSITIONRETURNVOID返回类型THROWS/OVERRIDEPUBLICVOIDADDFAVORTFINALINTCIRCLEPOSITION,STRINGCIRCLEIDCREATEFAVORTCIRCLEIDSUBSCRIBEONSCHEDULERSIOOBSERVEONANDROIDSCHEDULERSMAINTHREADSUBSCRIBENEWOBSERVEROVERRIDEPUBLICVOIDONCOMPLETEDVIEWHIDELOADINGOVERRIDEPUBLICVOIDONERRORTHROWABLEEVIEWSHOWTOAST“网络错误“OVERRIDEPUBLICVOIDONNEXTFAVORTITEMDATAIFDATANULLVIEWUPDATE2ADDFAVORITECIRCLEPOSITION,DATAELSEVIEWSHOWTOAST“点赞失败“/TITLEDELETEFAVORTDESCRIPTION取消点赞PARAMPARAMCIRCLEPOSITIONPARAMPARAMFAVORTIDRETURNVOID返回类型THROWS/OVERRIDEPUBLICVOIDDELETEFAVORTFINALINTCIRCLEPOSITION,FINALSTRINGFAVORTIDDELETEFAVORTFAVORTIDSUBSCRIBEONSCHEDULERSIOOBSERVEONANDROIDSCHEDULERSMAINTHREADSUBSCRIBENEWOBSERVEROVERRIDEPUBLICVOIDONCOMPLETEDVIEWHIDELOADINGOVERRIDEPUBLICVOIDONERRORTHROWABLEEVIEWSHOWTOAST“网络错误“OVERRIDEPUBLICVOIDONNEXTBOOLEANRESULTIFRESULTVIEWUPDATE2DELETEFAVORTCIRCLEPOSITION,FAVORTIDELSEVIEWSHOWTOAST“删除数据失败,请重试“/TITLEADDCOMMENTDESCRIPTION增加评论PARAMCONTENTPARAMCONFIGCOMMENTCONFIGRETURNVOID返回类型THROWS/OVERRIDEPUBLICVOIDADDCOMMENTSTRINGCONTENT,FINALCOMMENTCONFIGCONFIGIFCONFIGNULLRETURNCREATECOMMENTCONTENT,CONFIGSUBSCRIBEONSCHEDULERSIOOBSERVEONANDROIDSCHEDULERSMAINTHREADSUBSCRIBENEWOBSERVEROVERRIDEPUBLICVOIDONCOMPLETEDVIEWHIDELOADINGOVERRIDEPUBLICVOIDONERRORTHROWABLEEVIEWSHOWTOAST“网络错误“OVERRIDEPUBLICVOIDONNEXTCOMMENTITEMDATAIFDATANULLVIEWUPDATE2ADDCOMMENTCONFIGCIRCLEPOSITION,DATAELSEVIEWSHOWTOAST“评论提交失败“/TITLEDELETECOMMENTDESCRIPTION删除评论PARAMPARAMCIRCLEPOSITIONPARAMPARAMCOMMENTIDRETURNVOID返回类型THROWS/OVERRIDEPUBLICVOIDDELETECOMMENTFINALINTCIRCLEPOSITION,FINALSTRINGCOMMENTIDDELETECOMMENTCOMMENTIDSUBSCRIBEONSCHEDULERSIOOBSERVEONANDROIDSCHEDULERSMAINTHREADSUBSCRIBENEWOBSERVEROVERRIDEPUBLICVOIDONCOMPLETEDVIEWHIDELOADINGOVERRIDEPUBLICVOIDONERRORTHROWABLEEVIEWSHOWTOAST“网络错误“OVERRIDEPUBLICVOIDONNEXTBOOLEANRESULTIFRESULTVIEWUPDATE2DELETECOMMENTCIRCLEPOSITION,COMMENTIDELSEVIEWSHOWTOAST“删除数据失败,请重试“/PARAMCOMMENTCONFIG/OVERRIDEPUBLICVOIDSHOWEDITTEXTBODYCOMMENTCONFIGCOMMENTCONFIGIFVIEWNULLVIEWUPDATEEDITTEXTBODYVISIBLEVIEWVISIBLE,COMMENTCONFIG/清除对外部对象的引用,反正内存泄露。/PUBLICVOIDRECYCLETHISVIEWNULLMAINACTIVITYJAVA日记展现类,通过CIRCLEPRESENTER获取的数据后再调用VIEW的接口来展示和更新数据。PUBLICCLASSMAINACTIVITYEXTENDSBASEACTIVITYIMPLEMENTSCIRCLECONTRACTVIEWPROTECTEDSTATICFINALSTRINGTAGMAINACTIVITYCLASSGETSIMPLENAMEPRIVATECIRCLEADAPTERCIRCLEADAPTERPRIVATELINEARLAYOUTEDITTEXTBODYPRIVATEEDITTEXTEDITTEXTPRIVATEIMAGEVIEWSENDIVPRIVATECIRCLEPRESENTERPRESENTERPRIVATECOMMENTCONFIGCOMMENTCONFIGPRIVATESUPERRECYCLERVIEWRECYCLERVIEWPRIVATERELATIVELAYOUTBODYLAYOUTPRIVATELINEARLAYOUTMANAGERLAYOUTMANAGERPRIVATEFINALSTATICINTTYPE_PULLREFRESH1PRIVATEFINALSTATICINTTYPE_UPLOADREFRESH2PRIVATEUPLOADDIALOGUPLOADDIALOGPRIVATESWIPEREFRESHLAYOUTONREFRESHLISTENERREFRESHLISTENEROVERRIDEPROTECTEDVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATESETCONTENTVIEWRLAYOUTACTIVITY_MAINPRESENTERNEWCIRCLEPRESENTERTHISINITVIEW/实现自动下拉刷新功能RECYCLERVIEWGETSWIPETOREFRESHPOSTNEWRUNNABLEOVERRIDEPUBLICVOIDRUNRECYCLERVIEWSETREFRESHINGTRUE/执行下拉刷新的动画REFRESHLISTENERONREFRESH/执行数据加载操作DROIUPDATEUPDATETHISOVERRIDEPROTECTEDVOIDONDESTROYIFPRESENTERNULLPRESENTERRECYCLESUPERONDESTROYSUPPRESSLINT“CLICKABLEVIEWACCESSIBILITY“,“INLINEDAPI“PRIVATEVOIDINITVIEWINITTITLEINITUPLOADDIALOGRECYCLERVIEWSUPERRECYCLERVIEWFINDVIEWBYIDRIDRECYCLERVIEWLAYOUTMANAGERNEWLINEARLAYOUTMANAGERTHISRECYCLERVIEWSETLAYOUTMANAGERLAYOUTMANAGERRECYCLERVIEWADDITEMDECORATIONNEWDIVITEMDECORATION2,TRUERECYCLERVIEWGETMOREPROGRESSVIEWGETLAYOUTPARAMSWIDTHVIEWGROUPLAYOUTPARAMSMATCH_PARENTRECYCLERVIEWSETONTOUCHLISTENERNEWVIEWONTOUCHLISTENEROVERRIDEPUBLICBOOLEANONTOUCHVIEWV,MOTIONEVENTEVENTIFEDITTEXTBODYGETVISIBILITYVIEWVISIBLEUPDATEEDITTEXTBODYVISIBLEVIEWGONE,NULLRETURNTRUERETURNFALSEREFRESHLISTENERNEWSWIPEREFRESHLAYOUTONREFRESHLISTENEROVERRIDEPUBLICVOIDONREFRESHPRESENTERLOADDATATYPE_PULLREFRESHRECYCLERVIEWSETREFRESHLISTENERREFRESHLISTENERRECYCLERVIEWSETONSCROLLLISTENERNEWRECYCLERVIEWONSCROLLLISTENEROVERRIDEPUBLICVOIDONSCROLLEDRECYCLERVIEWRECYCLERVIEW,INTDX,INTDYSUPERONSCROLLEDRECYCLERVIEW,DX,DYOVERRIDEPUBLICVOIDONSCROLLSTATECHANGEDRECYCLERVIEWRECYCLERVIEW,INTNEWSTATESUPERONSCROLLSTATECHANGEDRECYCLERVIEW,NEWSTATEIFNEWSTATERECYCLERVIEWSCROLL_STATE_IDLEGLIDEWITHMAINACTIVITYTHISRESUMEREQUESTSELSEGLIDEWITHMAINACTIVITYTHISPAUSEREQUESTSCIRCLEADAPTERNEWCIRCLEADAPTERTHISCIRCLEADAPTERSETCIRCLEPRESENTERPRESENTERRECYCLERVIEWSETADAPTERCIRCLEADAPTEREDITTEXTBODYLINEARLAYOUTFINDVIEWBYIDRIDEDITTEXTBODYLLEDITTEXTEDITTEXTFINDVIEWBYIDRIDCIRCLEETSENDIVIMAGEVIEWFINDVIEWBYIDRIDSENDIVSENDIVSETONCLICKLISTENERNEWVIEWONCLICKLISTENEROVERRIDEPUBLICVOIDONCLICKVIEWVIFPRESENTERNULL/发布评论STRINGCONTENTEDITTEXTGETTEXTTOSTRINGTRIMIFTEXTUTILSISEMPTYCONTENTTOASTMAKETEXTMAINACTIVITYTHIS,“评论内容不能为空“,TOASTLENGTH_SHORTSHOWRETURNPRESENTERADDCOMMENTCONTENT,COMMENTCONFIGUPDATEEDITTEXTBODYVISIBLEVIEWGONE,NULLSETVIEWTREEOBSERVERPRIVATEVOIDINITUPLOADDIALOGUPLOADDIALOGNEWUPLOADDIALOGTHISPRIVATEVOIDINITTITLEADDTITLE“校园日记“SETRIGHTBUTTON“发日记“,NEWVIEWONCLICKLISTENEROVERRIDEPUBLICVOIDONCLICKVIEWVIEWSTARTACTIVITYNEWINTENTMAINACTIVITYTHIS,PUBLISHACTIVITYCLASSOVERRIDEPUBLICBOOLEANONKEYDOWNINTKEYCODE,KEYEVENTEVENTIFKEYCODEKEYEVENTKEYCODE_BACKUPDATEEDITTEXTBODYVISIBLEVIEWGONE,NULLRETURNTRUERETURNSUPERONKEYDOWNKEYCODE,EVENTOVERRIDEPUBLICVOIDUPDATE2DELETECIRCLESTRINGCIRCLEIDLISTCIRCLEITEMSCIRCLEADAPTERGETDATASFORINTI0IFAVORTSNEWARRAYLISTITEMSETFAVORTERSFAVORTSITEMGETFAVORTERSADDADDITEMCIRCLEADAPTERNOTIFYDATASETCHANGED/CIRCLEADAPTERNOTIFYITEMCHANGEDCIRCLEPOSITION1OVERRIDEPUBLICVOIDUPDATE2DELETEFAVORTINTCIRCLEPOSITION,STRINGFAVORTIDCIRCLEITEMITEMCIRCLEITEMCIRCLEADAPTERGETDATASGETCIRCLEPOSITIONLISTITEMSITEMGETFAVORTERSFORINTI0ICOMMENTSNEWARRAYLISTITEMSETCOMMENTSCOMMENTSITEMGETCOMMENTSADDADDITEMCIRCLEADAPTERNOTIFYDATASETCHANGED/CIRCLEADAPTERNOTIFYITEMCHANGEDCIRCLEPOSITION1/清空评论文本EDITTEXTSETTEXT“OVERRIDEPUBLICVOIDUPDATE2DELETECOMMENTINTCIRCLEPOSITION,STRINGCOMMENTIDCIRCLEITEMITEMCIRCLEITEMCIRCLEADAPTERGETDATASGETCIRCLEPOSITIONLISTITEMSITEMGETCOMMENTSFORINTI0IDATASIFDATASNULLRECYCLERVIEWREMOVEMORELISTENERRECYCLERVIEWHIDEMOREPROGRESSRETURNIFLOADTYPETYPE_PULLREFRESHRECYCLERVIEWSETREFRESHINGFALSECIRCLEADAPTERSETDATASDATASELSEIFLOADTYPETYPE_UPLOADREFRESHCIRCLEADAPTERGETDATASADDALLDATASCIRCLEADAPTERNOTIFYDATASETCHANGEDIFDATASNULLELSETOASTMAKETEXTMCONTEXT,“上传失败“,TOASTLENGTH_SHORTSHOW二)使用云数据来管理日记内容创建一个日记DATA类CIRCLEITEM继承于DROIOBJECT,使用SAVE函数就能够在云端的数据库保存日记数据了。相当的简单和方便,传统的使用方式往往还要服务端编写一个接口,客户端和服务端定好相应的协议,使用HTTP协议并携带相应的数据来访问接口,才会完成相应的操作。使用DROIBAAS的云数据功能,大大简化了流程,下面我们来看一看具体的使用PUBLICCLASSCIRCLEITEMEXTENDSDROIOBJECTPUBLICFINALSTATICSTRINGTYPE_URL“1“PUBLICFINALSTATICSTRINGTYPE_IMG“2“DROIEXPOSEPRIVATESTRINGCONTENTDROIEXPOSEPRIVATESTRINGCREATETIMEDROIEXPOSEPRIVATESTRINGTYPE/1链接2图片DROIEXPOSEPRIVATESTRINGLINKIMGDROIEXPOSEPRIVATESTRINGLINKTITLEDROIEXPOSEPRIVATELISTPHOTOSDROIREFERENCEPRIVATEUSERUSER发布日记CIRCLEITEMDATANEWCIRCLEITEMDATASETCONTENTCONTENTDATASETCREATETIMECOREGETTIMESTAMPTOSTRINGDATASETUSERUSERGETCURRENTUSERUSERCLASSDATASETTYPE“2“DATASETPHOTOSCREATEPHOTOSITEMSDROIPERMISSIONPERMISSIONNEWDROIPERMISSIONPERMISSIONSETPUBLICREADPERMISSIONTRUEPERMISSIONSETPUBLICWRITEPERMISSIONFALSEDATASETPERMISSIONPERMISSIONDROIERRORDROIERRORDATASAVE查询获取日记、评论、点赞数据DROIQUERYQUERYDROIQUERYBUILDERNEWBUILDERLIMIT3ORDERBY“CREATETIME“,FALSEOFFSETINDEX3QUERYCIRCLEITEMCLASSBUILDDROIERRORDROIERRORNEWDROIERRORLISTCIRCLEDATAQUERYRUNQUERYDROIERRORIFCIRCLEDATANULLDROIQUERYCQUERYDROIQUERYBUILDERNEWBUILDERWHERECONDQUERYCOMMENTITEMCLASSBUILDLISTCDATACQUERYRUNQUERYNULLIFCDATANULL/QUERYFAVORDATADROIQUERYFQUERYDROIQUERYBUILDERNEWBUILDERWHERECONDQUERYFAVORTITEMCLASSBUILDLISTFDATAFQUERYRUNQUERYNULLIFFDATANULL/GETPHOTOFILEURILISTPHOTOSITEMGETPHOTOSFORPHOTOINFOPHOTOPHOTOSPHOTOSETICONURLPHOTOGETICONGETURITOSTRINGITEMSETPHOTOSPHOTOS/GETUSERHEADURLUSERUSERITEMGETUSERIFUSERGETHEADICONNULLUSERSETHEADURLUSERGETHEADICONGETURITOSTRINGITEMSETUSERUSER三)DROIBAAS其他功能自更新、用户反馈、统计、推送功能手动更新和用户反馈功能可以通过在“我的”页面点击按钮来调用,推送功能可以在初始化时添加,统计功能按照自己的统计需求进行打点上传数据,使用这些SDK都需要再APPLICATION的ONCREATE中进行初始化PUBLICCLASSMYAPPLICATIONEXTENDSAPPLICATIONPRIVATESTATICCONTEXTMCONTEXTOVERRIDEPUBLICVOIDONCREATESUPERONCREATEMCONTEXTGETAPPLICATIONCONTEXTCOREINITIALIZETHISDROIFEEDBACKINITIALIZETHISDROIUPDATEINITIALIZETHISDROIANALYTICSINITI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培养孩子逻辑思维习惯
- 八百壮士活动策划方案
- 公交公司安全活动方案
- 公交志愿活动方案
- 森林运动会大结局650字12篇范文
- 公共图书馆活动方案
- 一年级写人作文我喜欢的老师200字8篇
- 告示引起的刺杀2000字10篇范文
- 公司diy美食活动方案
- 小区智能门禁系统合作协议
- 2025年授权签字人考试题及答案
- 中国书法艺术传承与发展现状分析
- Unit9SectionB2a-2e课件-人教版八年级英语下册
- 江苏省徐州市区部分2025届中考生物押题试卷含解析
- 水泥粉磨工艺流程
- KRONES灌装检测工作原理及工艺参数调整
- 不同碳减排下生物质气化制绿色甲醇的经济性分析
- 液压与气动技术(第2版)全册电子教案模块1-7教学设计(高职)
- 《疼痛管理策略》课件
- SJG 01-2010 深圳市地基基础勘察设计规范
- 中国糖尿病防治指南(2024版)解读
评论
0/150
提交评论