Greenrobot Eventbus 持有变量

Greenrobot Eventbus holds variables

我遇到以下症状的 Eventbus 问题。我有 activity 启动另一个 activity。使用了 Eventbus 和布尔值集。此值在 activity 运行 期间更改。对于第一个 运行 一切正常,但在第二个 运行 中,我在之前的 运行 中更改了错误的值。这是代码:

public class 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,但其他 运行s 显示 false。

onEventMainThread你的方法在主线程运行中,第一次运行它没有任何事件,当它再次发生时,要在主线程中执行同一个线程,正在顺序执行为什么标志更改为 false,将事件更改为线程上的执行或更改标志的逻辑 记住一个sticky是一个正在进行的事件,然后注册它,看看是否有这种事件,然后直接调用他的onEvent因此顺序执行并更改标志