0x0问题概述
假设有三个Android的Activity类,分别为类A、类B、类C,在类A中通过startActivityForResult启动类B,类B通过startActivity启动类C,我希望由类C带回数据给类A,并且类A不重新绘制画面。怎么操作呢?
0x1解决方式
我通过EventBus的发布订阅机制,完美解决这个问题。当然这个问题,不乏其他解决方法,但是我认为这个方式是比较便捷的一种。
0x2求解过程
- 下载EventBus
源码:https://github.com/greenrobot/EventBus - 工程中添加EventBus
- 使用EventBus3步骤
EventBus in 3 steps
Define events:
public class MessageEvent { /* Additional fields if needed */ }
Prepare subscribers:
eventBus.register(this);
public void onEvent(AnyEventType event) {/* Do something */};
Post events:
eventBus.post(event);
在本例中
在onCreate中注册总线,在onDestory中反注册总线,
@Subscribe public void onEventMainThread(UriChangeEvent event) {
Log.i(“ellee”,event.getPath);
}
关于@Subscribe,我并未在使用文档上看到必须要加这个,不过我发现不加这个反而程序无法运行。
本文介绍如何使用EventBus解决Android应用中跨Activity的数据传递问题,避免页面重启,提高开发效率。通过定义事件、注册订阅者及发布事件三个步骤实现类C向类A回传数据。
4803

被折叠的 条评论
为什么被折叠?



