您的位置:首页 > 其它

使用EventBus解决Activity生命周期使用问题

2015-06-18 13:14 323 查看

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,我并未在使用文档上看到必须要加这个,不过我发现不加这个反而程序无法运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: