android – 奥托事件没有解雇

前端之家收集整理的这篇文章主要介绍了android – 奥托事件没有解雇前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个活动,它启动一个DialogFragment,在一个事件完成后,DialogFragment在Otto事件总线上发布一个事件,这是在它的父活动中触发一个方法.我在这里发布了相关的代码,相同的代码在我的应用程序的其他地方工作,但这里的事件只是没有解雇.

活动中的代码……

@Subscribe
public void OttoUpdateUI(BudgetUpdateObject budgetUpdateObject)
{
    updateUI();
    Log.d("budget","Otto updateUI called");
}

@Override
public void onResume() {
    super.onResume();
    BusStand.getInstance().register(BudgetActivityNew.class);
}

@Override
public void onPause() {
    super.onPause();
    BusStand.getInstance().unregister(BudgetActivityNew.class);
}

BusStand班….

public final class BusStand {
private static final Bus BUS = new Bus();

public static Bus getInstance() {
    return BUS;
}

private void BusProvider() {

    }
}

和射击活动……

BusStand.getInstance().post(new BudgetUpdateObject());

我已经检查了活动中的导入,我没有使用匕首模块,而且我没有使用任何其他事件总线.任何帮助都感激不尽.

这是我从活动中启动DialogFragment的方式….

AddBudgetDialogFragment addBudgetDialogFragment = new AddBudgetDialogFragment();
addBudgetDialogFragment.setStyle(DialogFragment.STYLE_NO_TITLE,0);
addBudgetDialogFragment.show(getSupportFragmentManager(),"DialogFragment");

解决方法

问题是您没有注册活动实例,您正在注册该类:

BusStand.getInstance().register(BudgetActivityNew.class);

您应该将代码更改为:

BusStand.getInstance().register(this);

应该这样做.

猜你在找的Android相关文章