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

0x0问题概述

假设有三个Android的Activity类,分别为类A、类B、类C,在类A中通过startActivityForResult启动类B,类B通过startActivity启动类C,我希望由类C带回数据给类A,并且类A不重新绘制画面。怎么操作呢?

0x1解决方式

我通过EventBus的发布订阅机制,完美解决这个问题。当然这个问题,不乏其他解决方法,但是我认为这个方式是比较便捷的一种。

0x2求解过程

  1. 下载EventBus
    源码:https://github.com/greenrobot/EventBus
  2. 工程中添加EventBus
  3. 使用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,我并未在使用文档上看到必须要加这个,不过我发现不加这个反而程序无法运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值