2015-09-04 72 views
0

我遇到以下症状的Eventbus问题。我有开始另一项活动的活动。有使用Eventbus和布尔值设置。活动运行期间更改此值。对于第一次运行是可以的,但在第二次运行中,我在之前的运行中改变了不好的值。这里是代码:Greenrobot 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真实的,但其他的运行显示的是假。

+0

您可能想要显示“isStartFragment”是什么以及它在哪里/如何使用。 –

回答

0

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

+0

是的,但没有帮助。 –

+0

@DariusRadius你显示的是错误的? –

+0

在System.out.println中 - 第一次运行的活动是正确的,但是如果我在活动中将其更改为false,请销毁活动并重新创建它,但我得到了错误。 –