Greenrobot Eventbus содержит переменные

У меня проблема с Eventbus со следующими симптомами. У меня есть активность, которая запускает другую активность. Используется Eventbus и набор логических значений. Это значение изменяется во время выполнения операции. Для первого запуска все в порядке, но во втором запуске я получил неверное значение, измененное в предыдущем запуске. Вот код:

открытый класс ListArchiveTabs расширяет FragmentActivity {

private boolean isStartFragment = true;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    isStartFragment = true;
    EventBus.getDefault().registerSticky(this);
    System.out.println("Create archive activity " + isStartFragment);
}

@Override
public void onDestroy()
{
    super.onDestroy();
    EventBus.getDefault().unregister(this);
    System.out.println("Destroy archive activity");
}

public void onEventMainThread(GetArchiveEvent event)
{
    if(isStartFragment == true) {
        isStartFragment = false;
    } else {
    }
}

}

При первом запуске isStartFragment имеет значение true, но другие запуски показывают false.


person Darius Radius    schedule 04.09.2015    source источник
comment
Возможно, вы захотите показать, что такое isStartFragment и где/как оно используется.   -  person ci_    schedule 04.09.2015


Ответы (1)


onEventMainThread метод, который вы запускаете в основном потоке, при первом запуске никакого события, когда это происходит снова, выполняется в том же потоке, выполняется последовательно, почему флаг изменен на false, измените событие на выполнение в потоке или изменить логику флага помнить, что sticky является текущим событием, и зарегистрировать его таким образом, посмотреть, есть ли событие такого рода, и быть затем напрямую вызывает его onEvent, поэтому выполняется последовательно и флаг изменен

person Fernando Quintal    schedule 04.09.2015
comment
Да, но это не помогает. - person Darius Radius; 04.09.2015
comment
В System.out.println - первый запуск активности верен правильно, но если я изменю его на false в действии, уничтожу действие и создам его снова, я получу ложь. - person Darius Radius; 04.09.2015
comment
может показать полный код действия, в котором у вас возникла проблема - person Fernando Quintal; 04.09.2015
comment
потому что он использует registerSticky? - person Fernando Quintal; 04.09.2015
comment
у вас есть onEvent изменение флага? - person Fernando Quintal; 04.09.2015