gpt4 book ai didi

android - 奥托事件不开火

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:49:55 25 4
gpt4 key购买 nike

我有一个 Activity ,它启动一个 DialogFragment,在完成一个事件后,DialogFragment 在 Otto 事件总线上发布一个事件,这是为了在它的父 Activity 中触发一个方法。我已经在此处发布了相关代码,相同的代码在我的应用程序的其他地方也有效,但这里的事件只是没有触发。

Activity 中的代码...

 @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());

我已经检查了 Activity 中的导入,我没有使用 Dagger 模块,也没有使用任何其他事件总线。任何帮助都感激不尽。

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

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

最佳答案

问题是您没有注册 Activity 实例,您正在注册类:

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

您应该将代码更改为:

BusStand.getInstance().register(this);

应该可以了。 :)

关于android - 奥托事件不开火,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32165006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com