类图
横向是包含关系,竖向是继承关系。
首先Activity
需要视图支持,所以有ViewGroup
,需要生命周期,所以有LifecycHandler
,还需要跳转其他Activity
,所以有ControllerChangeHandler
。
可见Router
是联系各组件的关键,下面我们从Router的代码开始整个架构。
源码
初始化
在Activity
中调用,详见上篇
mRouter = Conductor.attachRouter(this, mContainer, savedInstanceState);
if (!mRouter.hasRootController()) {
mRouter.setRoot(new HomeController());
}
看一下初始化的方法
public static Router attachRouter(@NonNull Activity activity, @NonNull ViewGroup container, Bundle savedInstanceState) {
LifecycleHandler lifecycleHandler = LifecycleHandler.install(activity);
Router router = lifecycleHandler.getRouter(container