luckybilly / CC

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

请问CC支持多次回调么? #58

Closed SheepYang1993 closed 6 years ago

SheepYang1993 commented 6 years ago

例如文件下载进度回调,需要多次回调。

luckybilly commented 6 years ago

@SheepYang1993 CC是一对一的通信,不支持多次回调。 但可以使用动态组件来实现此类功能,实现步骤如下:

  1. DownloadComponent中定义2个actionName: “subscribe”和“unsubscribe”,接收订阅下载状态的组件
  2. Activity/Fragment在需要监听下载状态时创建一个IDynamicComponent实现类,通过CC.registerComponent(component)动态注册,
  3. 通过CC调用DownloadComponent的subscribe向下载组件注册监听
  4. DownloadComponent内部记录所有注册监听的组件componentName和actionName
  5. DownloadComponent下载状态改变时,将通过CC调用所有注册监听的组件将下载状态发送给它们
  6. Activity/Fragment不再需要监听下载状态时(如:onDestroy)通过CC调用DownloadComponent的unsubscribe进行注销,
  7. 调用CC.unregisterComponent(component)注销动态组件