arouter跨module传递消息_利用ARouter实现组件间通信,解决子模块调用主模块问题...
一年之前我寫過一篇組件間通信的博客Android模塊間通信(不使用三方庫),當時用的是反射,自己去維護一套“對應關系”(分別給每個模塊命名,分別給每個類命名幫助反射找到對應的類),我的這種映射關系就是屬于強映射(必須人力注明),阿里巴巴的ARouter就通過注解的方式實現了軟映射(你只需要把兩個需要對應的類加上注解,其他的維護不用你麻煩)
如果你還沒使用過ARouter請你按照這篇下面博客嘗試使用下然后再往下看組件通信的內容(不然的話可能會懵逼)Android Studio接入ARouter以及簡單使用
如果你使用過ARouter請繼續往下看:
1 子模塊定義一個與主模塊通信的接口 ISkill繼承自IProvider
2 主模塊定義一個ISkill實現類ISkillImpl
3 子模塊通過ARouter+反射去獲取這個ISkillImpl的實例化對象
4 通過3的實例化對象進行通信
理論是無聊的,接下來讓我們看代碼
1 子模塊中定義一個與主模塊通信的接口 ISkill繼承自IProvider
public interface ISkill extends IProvider {
public void eat();
}
1
2
3
2 主模塊定義一個ISkill實現類ISkillImpl,注意加上注解!!
@Route(path = "/app/ISkillImpl")
public class ISkillImpl implements ISkill {
@Override
public void eat() {
Log.i("TAG", "大王叫我來巡山!");
}
@Override
public void init(Context context) {
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
3,4 子模塊通過ARouter獲取這個ISkillImpl的實例化對象
ISkill impl=ARouter.getInstance().build("/app/ISkillImpl").navigation();
impl.eat();
總結
以上是生活随笔為你收集整理的arouter跨module传递消息_利用ARouter实现组件间通信,解决子模块调用主模块问题...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 甘肃的“甘”究竟是哪里
- 下一篇: 频率响应函数与数字滤波实验_WKD341