luckybilly / CC

业界首个支持渐进式组件化改造的Android组件化开源框架,支持跨进程调用。Componentize your android project gradually.
https://luckybilly.github.io/CC-website/
Apache License 2.0
4.04k stars 636 forks source link

如何进行组件跳转:A到B,B再到A? #148

Closed Catherineliujj closed 5 years ago

luckybilly commented 5 years ago

@Catherineliujj 在CC框架下,组件间的页面跳转与其它功能调用一样,都是通过一次CC调用来完成的,例如:

CC.obtainBuilder("ComponentA")
  .setActionName("showActivity")
  .build()
  .call();

具体如何使用,CC框架提供了较为完善的文档,详情请点击:https://luckybilly.github.io/CC-website/

Catherineliujj commented 5 years ago

相互跳转的呢

Catherineliujj commented 5 years ago

作者大大,那如果我需要A跳到B,再从B跳到C,需不需要在A里添加C组件??

luckybilly commented 5 years ago

首先,调用者不需要知道被调用者在哪个组件中(也不需要知道是在哪个module中,更不需要知道是在哪个进程中),CC是基于调用协议的:使用组件名称、action名称及参数列表发起一次CC调用即可

所谓的相互调用,就是A、B、C这3个module中各自创建一个IComponent的实现类(组件类), 向外暴露自身的服务(如:打开自己组件内的某个页面),在包括A/B/C组件在内的app任意处都可调用到这些服务。

举个例子:

A中定义了ComponentA,其中actionA是打开ActivityA
B中定义了ComponentB,其中actionB是打开ActivityB
C中定义了ComponentC,其中actionC是打开ActivityC
D中定义了ComponentD,其中actionD是获取用户的登录状态

在A中可以调用ComponentB的actionB,打开ActivityB 在B中可以调用ComponentA的actionA,打开ActivityA 不仅如此,在E中也可以调用ComponentA的actionA,打开ActivityA

具体的,还是看文档吧,介绍的还是比较详细的