ModuleBus
Module Bus is use for diffent modules communication.
ModuleBus in 3 steps
Define events:
public static class MessageClient extend IBaseClient { /* Additional fields if needed */ }
Prepare ModuleEvent and function: Declare and annotate your subscribing method.
@ModuleEvent(coreClientClass = MessageClient.Class) public void fun(Object...args) {/* Do something */};
Register and unregister your ModuleBus. For example on Android, activities and fragments should usually register according to their life cycle:
@Override public void onStart() { super.onStart(); ModuleBus.getInstance().register(this); } @Override public void onDestroy() { super.onStop(); ModuleBus.getInstance().unregister(this); }
Post function:
ModuleBus.getInstance().post(MessageClient.class,"fun",Object...args);
Add ModuleBus to your project
Gradle:
compile 'com.cangwang.core:modulebus:2.0.0'
Maven:
<dependency>
<groupId>com.cangwang.core</groupId>
<artifactId>modulebus</artifactId>
<version>2.0.0</version>
<type>pom</type>
</dependency>
*Important
need to set base module depend with ModuleBus and ,other communicated modules depend with base module.
*2016.12.12 update
(1)Use ArrayMap to change with HashMap.
(2)Add startModuleActivity function.
(3)Fix bugs and develop speeds in ModuleBus.
*2017.2.27 update
(1) Add Module architecture inclue activity,fragment and view.
(2) Add Application util ModuleImpl.
*2017.3.3 update moduleBus 2.0.0
(1) update Module architecture inclue activity,fragment and view.