对于RxJava的初学习和MVP的demo理解
生活在当下的时代,尤其是我们学习技术专业的,可以说是时刻不敢松懈,本人是一名大三狗,自学习Android开发也有一年多的时间了,没有人指引和教导确实有些慢。和其他人交流才知道retrofit+RxJava+MVP,学习也有一段时间了,这是补发的部分。应该还会有后续,因为最近才真的认识到RxJava的牛逼。
当时学习RxJava和MVP的时候从网上找了很多例子的使用方法,忍不住吐槽都是一堆什么东西,能不能有些实际的东西让我们能够更好的深入理解具体什么是MVP,什么是RxJava。所以我当时就想,如果我对于这些知识了解之后一定要写一个完整的Demo提供给大家,让大家少走弯路。想学习rxjava的同学可以看看这个链接 给 Android 开发者的 RxJava 详解,如果感觉不够的话也没关系,网上资源很多,大家可以多搜一搜,多看一看。
首先给大家看一下运行结果
如果想使用rxjava和retrofit的话需要在as中引入支持
这是第一步完成了,其次我们还要大致了解什么是MVP,有关MVP和MVC的介绍网上有很多,大家可以自己多搜一搜,多看一看,这里我只是说一下我自己的理解。不论是什么模式,什么框架,我们都只有一个目的,那就是为了更好的开发项目,让代码看起来整齐简洁,便于扩展。所以对我们练手的项目来说其实MVC就够用了,因为我们还没有建立架构的能力,使用MVP其实有些早。如果不懂MVC也没关系,你只要这样想,我能在两个类里写的代码就不再一个类里面写完;能在两个方法里写的代码就不再一个方法里写完;各个地方用到很多的公共方法或者类,例如对于Toast的封装,对IO的封装,那就把他们单独写在一个类里面就够了。然后多从git上下下源码看看别人是如何封装Base的。这个真的很重要。
好了跑题了,下面来看下我这个真正MVP小Demo的例子的结构。
其中第一个是适配器,这个没什么好说的,使用的框架,BaseQuickAdapter,使用特别简单,想了解的同学可以自行百度。
ApiServiceManager是retrofit的封装类,下面是主要代码部分。获取的信息是使用wanandroid的接口。
上面的代码我也增加了一些注释,中间部分是Retrofit的关键代码初始化部分,相信大家都会有些了解。网络框架有很多,说实话我最近喜欢上了okGo,虽然解析JSON的时候可能需要自己使用原生解析,但是任然不可否认使用起来贼舒服。
接下来我们来看RxJava的使用部分
这里可以实现获取数据前加载框,失败后出现错误提示什么的,大家可以自己增加,话说当时这一个问题魂绕了我好久,后来解决后觉得大彻大悟。
MainActivity就没什么好说的了。不过是获取数据而已,大家可以区我的git上看看。
下面是我的demo地址。谢谢大家支持
GitHub - jiwenjie/MVPDemo: 一个使用rxJava和retrofit以及MVP框架实现的真正简单的小栗子
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android分页加载刷新AsyncListUtil中DataCallback的refreshData()
Android分页加载刷新AsyncListUtil中DataCallback的refreshData() Android分页加载刷新AsyncListUtil中DataCallback的refreshData()函数,返回值控制分页总数据量。如果返回一个既定的整型数据,那么AsyncListUtil的分页将在这个整型数据范围内分页和刷新,而不会超出这个范围。refreshData的实现源代码: /** * Refresh the data set and return the new data item count. * * <p> * If the data is being accessed through {@link android.database.Cursor} this is where * the new cursor should be created. * * @return Data item count. */ @WorkerThread public abstract int refreshData(); 实际的开发过程中,既然是分页,通常不确定...
- 下一篇
热修复技术的实践之旅——微信TinkerPatch热修复结合Walle多渠道打包的详解
本文导语: 本文的核心内容介绍: (1)对比当前市场上的热修复方案,对Tinker热修复方案进行了简单的介绍。 (2)详细讲解了微信Tinker的完整接入过程,文末提供了一个自己写的非常轻量的Demo,可以帮助开发者迅速实现自己项目中热修复的接入,将热修复技术运用到真实的项目中,而不仅仅是Demo测试。 (3)加入了walle的多渠道打包方案,能迅速打出很多个渠道包。详细的介绍了真实项目上线时APK及补丁包的版本维护,如何通过单个补丁包,修复多个渠道,进行热修复的实现方案。 (4)文章末尾总结了接入过程中可能遇到的坑,及相应的解决方案,能帮助你无障碍的接入Tinker。以及简单的分享了一些关于热修复技术方面需要储备的一些技术知识。 希望读完本文的朋友,能对热修复及相关的技术和概念,有比较深的理解。 一、Tinker热修复方案原理简介 1、腾讯官方介绍: Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstalling a...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果