Ho un'attività e avvia un DialogFragment, al termine di un evento il DialogFragment invia un evento sul bus eventi Otto, questo è per attivare un metodo nella sua attività principale. Ho postato il codice relativo qui, lo stesso codice funziona altrove nella mia app, ma qui l'evento non ha effetto.Otto evento non sparato
Codice nell'attività ...
@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);
}
classe busstand ....
public final class BusStand {
private static final Bus BUS = new Bus();
public static Bus getInstance() {
return BUS;
}
private void BusProvider() {
}
}
e l'evento di tiro ...
BusStand.getInstance().post(new BudgetUpdateObject());
ho controllato il importare nell'attività, e non sto usando il modulo dagger, e non sto usando nessun altro bus di eventi. Qualsiasi aiuto sarà molto apprezzato.
Questo è il modo in lancio il DialogFragment dall'attività ....
AddBudgetDialogFragment addBudgetDialogFragment = new AddBudgetDialogFragment();
addBudgetDialogFragment.setStyle(DialogFragment.STYLE_NO_TITLE,0);
addBudgetDialogFragment.show(getSupportFragmentManager(),"DialogFragment");
Come si avvia la finestra di dialogo? Potrebbe essere che tu "metti in pausa" l'attività per farlo? Se l'attività è in pausa, l'evento arriva prima che 'onResume' venga chiamato – lgvalle
. Il codice sembra corretto. Condividi attività e codice di dialogo. –
@Igvalle, lasciatemi scrivere alcune dichiarazioni di registro e guarda in che stato si trova l'attività quando viene attivato l'evento ... –