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
因此顺序执行并更改标志
我遇到以下症状的 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
因此顺序执行并更改标志