Skip to content

Commit 521d131

Browse files
committed
Merge branch 'develop'
2 parents 5bdc53d + 59919ff commit 521d131

File tree

4 files changed

+19
-18
lines changed

4 files changed

+19
-18
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -566,8 +566,8 @@ GoRouter {
566566
##### 10. 路由页面Event
567567

568568
在之前跨模块页面事件通知的流程是,使用EventBus库,在module_common模块里定义event类,页面注册订阅者接收事件,实现事件处理并注解标识,页面销毁解除注册。
569-
这一套流程下来步骤很多,会出现很多event类,而且这些类只有一个页面在订阅,还要去module_common模块里定义,发布基础数据类型,到导致所有订阅者都会收到,也无法检测页面生命周期状态。
570-
显然EventBus适合任意处发布多处订阅的场景,而我们需要任意处发布一处订阅的场景,这样就可以订阅基础数据类型了。
569+
这一套流程下来步骤很多,会出现很多event类,而且这些类只有一个页面在订阅,还要去module_common模块里定义,发布基础数据类型,会导致所有订阅者都会收到,也无法检测页面生命周期状态。
570+
显然EventBus适合任意处发布多处订阅的场景,而我们需要任意处发布一处订阅的场景,这样就可以订阅基础数据类型了,自定义类型也不需要再包裹一层新的Event类发布出去
571571

572572
典型场景
573573

@@ -594,15 +594,15 @@ GoRouter.getInstance().postEvent("/main/activity", "Go!");
594594

595595
```java
596596
// 订阅自定义类型事件
597-
GoRouter.getInstance().registerEvent(this, CustomEvent.class, new Observer<CustomEvent>() {
597+
GoRouter.getInstance().registerEvent(this, UserEntity.class, new Observer<UserEntity>() {
598598
@Override
599-
public void onChanged(CustomEvent data) {
599+
public void onChanged(UserEntity data) {
600600
// do something.
601601
}
602602
});
603603

604-
// 向UserFragment发送CustomEvent类型数据
605-
GoRouter.getInstance().postEvent("/user/fragment", new CustomEvent(89, "Wyjson"));
604+
// 向UserFragment发送自定义类型数据
605+
GoRouter.getInstance().postEvent("/user/fragment", new UserEntity(89, "Wyjson"));
606606

607607
// 手动解除String类型全部订阅
608608
GoRouter.getInstance().unRegisterEvent(this, String.class);

module_main/src/main/java/com/wyjson/module_main/event/CustomEvent.java renamed to module_common/src/main/java/com/wyjson/module_common/entity/UserEntity.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
package com.wyjson.module_main.event;
1+
package com.wyjson.module_common.entity;
22

3-
public class CustomEvent {
3+
import java.io.Serializable;
44

5+
public class UserEntity implements Serializable {
56
public long id;
67
public String name;
78

8-
public CustomEvent(long id, String name) {
9+
public UserEntity(long id, String name) {
910
this.id = id;
1011
this.name = name;
1112
}
1213

1314
@Override
1415
public String toString() {
15-
return "CustomEvent{" +
16+
return "UserEntity{" +
1617
"id=" + id +
1718
", name='" + name + '\'' +
1819
'}';

module_main/src/main/java/com/wyjson/module_main/activity/EventActivity.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import androidx.fragment.app.Fragment;
88
import androidx.fragment.app.FragmentActivity;
99

10+
import com.wyjson.module_common.entity.UserEntity;
1011
import com.wyjson.module_common.route.MainRoute;
1112
import com.wyjson.module_main.R;
1213
import com.wyjson.module_main.databinding.MainActivityEventBinding;
13-
import com.wyjson.module_main.event.CustomEvent;
1414
import com.wyjson.router.GoRouter;
1515
import com.wyjson.router.annotation.Route;
1616

@@ -39,8 +39,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
3939
// 做一些处理...
4040
});
4141
// 订阅自定义类型事件
42-
GoRouter.getInstance().registerEvent(this, CustomEvent.class, data -> {
43-
vb.tvShow.setText("EventActivity->CustomEvent data:" + data.toString());
42+
GoRouter.getInstance().registerEvent(this, UserEntity.class, data -> {
43+
vb.tvShow.setText("EventActivity->UserEntity data:" + data.toString());
4444
});
4545
}
4646

@@ -51,7 +51,7 @@ public void onClickStringEvent(View view) {
5151

5252
public void onClickCustomEvent(View view) {
5353
// 向EventFragment发送自定义类型
54-
GoRouter.getInstance().postEvent(MainRoute.EventFragment, new CustomEvent(89, "Wyjson"));
54+
GoRouter.getInstance().postEvent(MainRoute.EventFragment, new UserEntity(89, "Wyjson"));
5555
}
5656

5757
public void onClickIntEvent(View view) {

module_main/src/main/java/com/wyjson/module_main/fragment/EventFragment.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import androidx.annotation.Nullable;
1010
import androidx.fragment.app.Fragment;
1111

12+
import com.wyjson.module_common.entity.UserEntity;
1213
import com.wyjson.module_common.route.MainRoute;
1314
import com.wyjson.module_main.databinding.MainFragmentEventBinding;
14-
import com.wyjson.module_main.event.CustomEvent;
1515
import com.wyjson.router.GoRouter;
1616
import com.wyjson.router.annotation.Route;
1717

@@ -41,8 +41,8 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
4141
// 做一些处理...
4242
});
4343
// 订阅自定义类型事件
44-
GoRouter.getInstance().registerEvent(this, CustomEvent.class, data -> {
45-
vb.tvShow.setText("EventFragment->CustomEvent data:" + data.toString());
44+
GoRouter.getInstance().registerEvent(this, UserEntity.class, data -> {
45+
vb.tvShow.setText("EventFragment->UserEntity data:" + data.toString());
4646
});
4747

4848
vb.tvSendString.setOnClickListener(v -> {
@@ -52,7 +52,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
5252

5353
vb.tvSendCustom.setOnClickListener(v -> {
5454
// 向EventActivity发送自定义类型
55-
GoRouter.getInstance().postEvent(MainRoute.EventActivity, new CustomEvent(123, "jack"));
55+
GoRouter.getInstance().postEvent(MainRoute.EventActivity, new UserEntity(123, "jack"));
5656
});
5757
}
5858
}

0 commit comments

Comments
 (0)