android hxgbus 待tag的訊息傳遞
阿新 • • 發佈:2018-12-06
hxgbus
引入方式
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.huangxiaoguo1:hxgbus:1.0.0'
}
註冊
@Override
protected void onCreate(Bundle savedInstanceState) {
HxgBus.getDefault().register(this );
}
清除註冊
@Override
protected void onDestroy() {
HxgBus.getDefault().unregister(this);
}
接收資料
方式一(什麼都沒帶)
/**
* 什麼都沒帶
* 此時,資料接收依引數型別決定
* @param name
*/
@Subscriber()
public void ShowNameNo(String name) {
Log.e("huangxiaoguo" , name + "---什麼都沒帶");
}
方式二(帶有tag標記)
/**
* 帶有tag標記
* 此時 資料接收依tag決定
* @param name
*/
@Subscriber(tag = Contant.tag)
public void ShowNameTag1(String name) {
Log.e("huangxiaoguo", name + "---只帶有tag");
}
方式三(四種不同型別的執行緒接收,並帶有優先順序)
/**
* 主執行緒
*
* @param name
*/
@Subscriber(threadMode = ThreadMode.MAIN, priority = 100)
public void ShowName(String name) {
Log.e("huangxiaoguo", name + "===100");
}
/**
* 非同步執行緒
*
* @param name
*/
@Subscriber(threadMode = ThreadMode.ASYNC, priority = 500)
public void ShowName2(String name) {
Log.e("huangxiaoguo", name + "===500");
}
/**
* 子執行緒
*
* @param name
*/
@Subscriber(threadMode = ThreadMode.BACKGROUND, priority = 600)
public void ShowName3(String name) {
Log.e("huangxiaoguo", name + "===600");
}
/**
* 相同執行緒
*
* @param name
*/
@Subscriber(threadMode = ThreadMode.POSTING, priority = 700)
public void ShowName4(String name) {
Log.e("huangxiaoguo", name + "===700");
}
方式四(指定執行緒,指定tag,指定優先順序)
/**
* 主執行緒,帶有tag標記
*
* @param name
*/
@Subscriber(threadMode = ThreadMode.MAIN, tag = Contant.tag, priority = 100)
public void ShowNameTag(String name) {
Log.e("huangxiaoguo", name + "---帶有tag===100");
}
post資料
不帶tag
HxgBus.getDefault().post( "111");
帶有tag
HxgBus.getDefault().post( Contant.tag, "111");