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

主APP与组件之间值传递 #59

Closed zjgit closed 6 years ago

zjgit commented 6 years ago

比如:我在APP这个主工程的MainActivity中调用了ComponentA组件中的ActivityA,采用String callId = CC.obtainBuilder("ComponentA").build().callAsync(new IComponentCallback(){...})这种方式,在ComponentA中拦截到并CC.sendCCResult(cc.getCallId(), CCResult.success())处理,那么主APP中立即会在Callback中得到结果,这个OK。但是,现在是这样一个场景:我需要在ActivityA销毁或者点击某个地方触发的事件的时候,把数据回传到MainActivity,并且MainActivity中有相应的方法接收到这个传值再去做其他事。请问下这个该怎么写?

luckybilly commented 6 years ago

你这个问题比较有代表性,涉及到CC的异步实现(或者叫延时回调)功能,具体到你说的这个功能在原生android里是用startActivityForResult来实现,在CC中完全可以用异步实现来做到这一点。 在demo中也有示例代码,那就是模拟登录:在demo中调用demo_b打开登录页面,登录成功后返回登录结果,详情请查看demo的代码

luckybilly commented 6 years ago

说明一下,CC是一对一的调用和返回,如果需要多次回调,请使用动态组件(实现IDynamicComponent接口),动态组件的使用类似于android原生的动态广播

guozhiqiang123 commented 6 years ago

@luckybilly 请问动态组件(IDynamicComponent)该怎么使用啊,有使用文档吗

luckybilly commented 6 years ago

国庆节我找时间提供demo代码,并且完善2.0相关的文档,敬请关注! PS:watch本项目会第一时间收到github上更新的提示哦

luckybilly commented 6 years ago

@guozhiqiang123 动态组件的demo代码已经有了:在MainActivity监听登录用户信息