当前位置:首页 > 奇闻趣事

arouter 阿里路由框架-ARouter介绍与使用

1.周围是什么?

ARouter是阿里开放的安卓路由框架。通过路由的接口跳转不同于意图的显式和隐式跳转。在模块化项目中,友好地解决了由于模块相互依赖的冲突而导致的接口不能相互跳转的问题。使用ARouter跳转,两个库可以相互跳转而不相互依赖。

第二,ARouter的基本用法

1.介绍一下

2.简单路由跳转界面

(1)目标活动,注释通过路由器的路由路径

(2)开始活动,并在周围跳转

3.跳转到接口并传递参数

(1)目标活动,它通过路由器标注路由路径,并通过意图获取传递的参数

(2)启动“活动”,跳转到“环绕”,并传递数据参数

4.跳转到界面,传递参数。目标接口以注释的形式将传递的数据与定义的变量绑定在一起

(1)目标活动:通过Router注释路由路径,通过inject注入,并用@Autowired注释变量

5.使用Uri进行路由跳转和数据传输

(1)目标活动,它通过路由器标注路由路径,并通过意图获取传递的参数

(2)发起活动,通过Uri进行路由跳转

6.实施开始活动或结果模式

7.获取路由跳转结果回调

8.加入拦截器(判断isLogin为真时继续跳转到目标活动,判断为假则跳转到指定接口)

9.设置降级

第三,简述工作原理

1.初始化ARouter

2.init of 2。周围

ARouter初始化,判断是否初始化。如果日志对象没有初始化,调用_ arounter的init方法初始化_ arounter。初始化成功后,调用afterInit方法配置负载侦听。

后勤中心在_ ARouter的初始化中初始化。

物流中心是进行逻辑处理的物流中心,它已经加载了编译包com . Alibaba . Android . arounter . routes下的所有类,将这些类分类,存储在Warehouse中。仓库相当于类仓库。

在Warehouse中存储了对应的类之后,就完成了_ ARouter的初始化,初始化完成之后复制了interceptorService,也就是在对应的项目中定义了IInterceptor的实现类。以后路线跳的时候方便拦截

以上arounter初始化完成,arounter的主要工作是将arounter相关的反射类加载到Warehouse中,从Warehouse中取对应路由下的接口,在路由跳转中跳转。同时找出拦截实现类,调用路由跳转时用于拦截。

3.执行路由跳转

使用下图在代码中进行简单的路由跳转。通过目的地路线/lib2/main到bulid获得明信片,并通过调用获得的明信片调用导航。

在明信片类中,定义了三种构建方法来构建明信片对象,它们可以通过路径路由、路径路由和组路由组或URIs来构建。

明信片类中有五个导航方法,但是ARouter类中的所有导航方法最后都被调用了。也可以说,路线跳转是从在路线中经过开始构造一张明信片,然后调用ARouter的导航方法跳转。

arounter的导航方法实际上是调用_ ARouter的导航方法来实现具体的路线跳转。

在_ ARouter的导航方式中,先处理明信片。如果在仓库中没有找到相应的路由数据,则认为路由不匹配,并引发异常。如果在项目的跳转回调中或跳转回调之外调用导航方法,如果没有跳转回调,并且定义了降级服务,则调用回调. onLost方法。

ARouter通过degradaeservice类在已定义的项目中找到degradaeservice的具体实现,并调用实现类的onLost方法。同时,在仓库中找到相应的RouteMeta。首先,判断跳转回调是否为空,而不是空。然后,判断明信片是否由绿色通道处理。

如果处理了,即使在项目中定义了拦截服务,也不会被拦截。绿色通道相当于免死金牌,继续跳。但是没有绿色通道处理,并且在项目中定义了拦截服务,那么这个时候就会被拦截并执行到项目中相应的拦截服务的方法中。

看到这里,就要画重点了,这里是我们真正跳跃的地方,我们看到了熟悉的Intent。里面的逻辑很简单,就是封装Intent跳转,调用startActivity或者startActivityForResult跳转,如果定义了跳转动画,就执行动画跳转。如果它是一个片段,它返回一个片段对象。不是很简单。

最后了解了整个跳转过程,但是明信片的封装可能不太清楚。我们来看看明信片的处理。

(1)判断明信片是否为空,如果为空则不抛出明信片异常。

(2)明信片不是空,取仓库中带路径的RouteMeta,判断是否为null,如果为null,则找不到对应的RouteMeta,然后通过group取仓库中的routing group Class对象,如果为null,抛出一个route失配异常,如果不为null,则构造一个IRouteGoup对象。

加载仓库。将数据路由到已构建的IRouteGroup并移除仓库组数据,然后递归地重新处理明信片。这时,通过明信片的路径取出RouteMeta,判断空。当路由数据不为空时,为明信片设置目标(对应于项目中路径的类)、类型、优先级和附加附件数据。

处理Uri,Uri上传的数据传入明信片捆绑包。

四.流程图

初始化流程图:

路由跳转流程图:

路由内部跳转逻辑流程图:

文字/暴民傅滢滢

所有人都在看

1.《arouter 阿里路由框架-ARouter介绍与使用》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《arouter 阿里路由框架-ARouter介绍与使用》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/682946.html

上一篇

管道维修施工方放人体模特拦路 路人:晚上看到能吓死!

下一篇

"一键叫车"功能争取春节前开通试运行 过程真相详细揭秘!

4天线路由器天线摆放图 路由器要怎么摆放信号才好?天线千万要全部立起来~

  • 4天线路由器天线摆放图 路由器要怎么摆放信号才好?天线千万要全部立起来~
  • 4天线路由器天线摆放图 路由器要怎么摆放信号才好?天线千万要全部立起来~
  • 4天线路由器天线摆放图 路由器要怎么摆放信号才好?天线千万要全部立起来~
解决者网站 网站被DNS劫持,经常跳转到其他网站如何解决

解决者网站 网站被DNS劫持,经常跳转到其他网站如何解决

网站被流量劫持怎么办?这是站长们最头疼的问题。除了失去网站本身的流量,还可能影响网站的声誉。 流量劫持从技术角度主要包括DNS劫持和链接劫持,从劫持对象上可以分为运营商劫持和企业/个人劫持。...

下载机 HTPC+软路由+下载机 ALL IN ONE 三体合一搭建分享

注意:此文来自# Original neighbor #活动,如果您成功参与活动,您将获得额外的100金币奖励此链接!PT deep用户原本用453Bmini和N1一起玩4K视频,3215u...

300m路由器 300M平民路由器终极大PK

  • 300m路由器 300M平民路由器终极大PK
  • 300m路由器 300M平民路由器终极大PK
  • 300m路由器 300M平民路由器终极大PK

路由器信号增强100倍 知多少:路由器套上易拉罐真能增强WiFi信号?

  • 路由器信号增强100倍 知多少:路由器套上易拉罐真能增强WiFi信号?
  • 路由器信号增强100倍 知多少:路由器套上易拉罐真能增强WiFi信号?
  • 路由器信号增强100倍 知多少:路由器套上易拉罐真能增强WiFi信号?
路由器摆放位置好十倍 路由器摆放位置很讲究,如果放在这三个地方,百兆宽带也变龟速

路由器摆放位置好十倍 路由器摆放位置很讲究,如果放在这三个地方,百兆宽带也变龟速

原创内容,请勿复制。100兆宽带改变海龟速度日常生活中,衣食住行很重要,工作也很重要,但娱乐也很重要。很多人会说娱乐是需要钱的,但是你得不到!其实我们有最干净的娱乐,就是手机和智能手机!以前带模拟...

路由器los闪红灯是怎么回事 路由器上有一个LOS的信号灯总是闪红光,网络用不成怎么办?

  • 路由器los闪红灯是怎么回事 路由器上有一个LOS的信号灯总是闪红光,网络用不成怎么办?
  • 路由器los闪红灯是怎么回事 路由器上有一个LOS的信号灯总是闪红光,网络用不成怎么办?
  • 路由器los闪红灯是怎么回事 路由器上有一个LOS的信号灯总是闪红光,网络用不成怎么办?

tplink设置网址 TP-LINK路由器屏蔽网站设置方法

  • tplink设置网址 TP-LINK路由器屏蔽网站设置方法
  • tplink设置网址 TP-LINK路由器屏蔽网站设置方法
  • tplink设置网址 TP-LINK路由器屏蔽网站设置方法