0

我有以下症状的 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。

4

1 回答 1

0

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

于 2015-09-04T16:13:15.857 回答