나는 Otto을 사용하려고합니다. 지금까지는 효과가 있다고 생각하지만 이벤트를 두 번받습니다. 두 번받은 오토 이벤트
이
내가 (내가 다음에 example on GitHub) 한 것입니다 :프로듀서 :
public class NetworkChangeReceiver extends BroadcastReceiver
{
@Override
public void onReceive(final Context context, final Intent intent)
{
Log.i("ralphs", "onReceive");
// .... more stuff
final Bus bus = TRaumfeldApp.getInstance().getBus();
bus.register(this);
bus.post(new NetworkChangeEvent());
bus.unregister(this);
}
@Produce
public NetworkChangeEvent produceAnswer()
{
Log.i("ralphs", "produceAnswer");
return new NetworkChangeEvent();
}
}
가입자 :이 같은
public class MainActivity extends ActionBarActivity
{
private Bus mBus;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// otto event bus
mBus = TRaumfeldApp.getInstance().getBus();
}
@Override
protected void onResume()
{
super.onResume();
mBus.register(this);
}
@Override
protected void onPause()
{
super.onPause();
mBus.unregister(this);
}
@Subscribe
public void answerAvailable(NetworkChangeEvent event)
{
Log.i("ralphs", "answerAvailable");
}
}
로그 잠금 :
I/ralphs﹕ onReceive
I/ralphs﹕ produceAnswer
I/ralphs﹕ answerAvailable
I/ralphs﹕ answerAvailable
왜 이벤트가 두 번 수신됩니까?