最后为了支持主流的回调框架Rxjava在时间和空间上的统筹 增加了其上包含通用逻辑的PopRxSubscriber 用户可以继承进行自定义扩展
流程模拟
上图是以APP开发中最常见的版本更新和公告弹窗的数据交互与显示流程为例的逻辑图
它分为两个部分 分别是引入流程控制前后的逻辑顺序我们可以清晰的发现两者的区别
通常流程下我们必须在每个流程的中介点进行数据产出和UI生成的操作 在框架的帮助下 我们只需要考虑产生UI 具体的逻辑由事先订好的规则由任务管理器帮我们处理
具体使用
基础使用
//创建网络请求任务
Task taskUpdate=new Task();
//新建Poplayer弹窗
PopLayerView mLayerView1 = new PopLayerView(this,LayerConfig.dialog5);
Popi downloadPop = new Popi.Builder()
.setmPopId(30)
.setmPriority(6)
.setmCancelType(TRIGGER_CANCEL)
.setLayerView(mLayerView1)
.build();
//加入任务管理
TaskManager.getInstance(this).pushToQueue(taskUpdate,mUpgradePopi)
自定义回调
TaskManager.getInstance(this).onTaskGoOn(taskNotice);//回调成功
TaskManager.getInstance(this).onTaskInterupt(taskUpdate);//回调失败
如果您使用的是Rxjava实现回调可以继承框架中自带回调逻辑的PopRxSubscriber
public class MySubscriber extends PopRxSubscriber {
public MySubscriber(Context mContext, Task task) {
super(mContext, task);
}
}
优缺点分析
优点:就代码而言 能解决一个接口有多处调用点的问题 弹窗逻辑上的显示由优先级判断,并且解决了网络逻辑业务无法使用弹窗效果的问题
缺点: 摒弃了某些接口的懒加载特性
心得
发布v3之前我也很怀疑 这个问题是否有解决办法 是否需要花费太多的时间 所以一直犹豫要不要在有限的时间来做这个东西,但其实只要将复杂问题分解下 逐个击破其实并没有想象的那么难缠
第一步 将其中涉及的关键成员都整理起来 阐明对应的职责 用代码实现出一个大概
第二步 将复杂的问题 最小化具象化 将逻辑写下来 根据逻辑和成员类写测试代码
第三步 考虑N+1种可能 将简单问题进行N种可能的适用化 并逐步用在小范围的业务代码上
关于项目
PoupoLayer
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
写在最后
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家
我的【Github】会分享一些关于Android进阶方面的知识,也会分享一下最新的面试题~
如果你熟练掌握GitHub中列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。
①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包——————可以在我的【Github】阅读下载,最后觉得有帮助、有需要的朋友可以点个赞
赞
[外链图片转存中…(img-hWlSnJ4w-1710828973998)]
[外链图片转存中…(img-nF78DeVi-1710828973998)]