GreenRobot EventBus活动之间的数据共享

时间:2017-10-06 15:04:55

标签: android events android-activity greenrobot-eventbus

我有一系列活动如下:

ProductA> CreditCardA> PaymentA> ConfirmationA> DoneA

现在,确认屏幕需要ProductACreditCardAPaymentA的信息。但是,我不想继续传递对以前的活动无用的数据。 CreditCardA需要对产品一无所知,PaymentA并不真正关心信用卡或产品本身,只关心价格以及可以支付多少个月的价格。

所以我想到了使用GreenRobot EventBus。从ProductA开始,将调用PaymentFlowA(没有布局),这将在EventBus中注册并从中接收与付款流相关的数据。

这样的事情:

public class PaymentFlowActivity extends BaseActivity {
  private CreditCard cc;
  // etc...

  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    startActivity(CreditCardA);
  }

  @Override
  protected void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
  }

  @Override
  protected void onStop() {
    EventBus.getDefault().unregister(this);
    super.onStop();
  }

  @Subscribe
  void onCreditCard(CreditCardMessage ccMsg;) {
    cc = ccMsg.getCreditCard();
    startActivity(PaymentA);
  }

  // etc...
}

现在,我害怕活动停止。如果PaymentFlowA在用户开启时释放内存,例如PaymentAConfirmationA,会发生什么?我担心实例状态将无法正常恢复。

有什么想法吗?

0 个答案:

没有答案