Я использую greenrobot EventBus и не совсем понимаю, как его использовать.
В моем приложении у меня есть 4 действия: MainActivity и 3 других. Каждая активность имеет свою роль в приложении, а MainActivity поддерживает соединение через COM-порт и отправляет/получает сообщения. Таким образом, когда сообщение получено, оно отправляется через EventBus в текущую рабочую активность. И когда другой активности нужно отправить сообщение на COM-порт, она также отправляет сообщение в MainActivity через EventBus. Проблема в том, что когда я работаю в одной активности - все работает нормально, но когда я пытаюсь что-то сделать в других активностях - дублируются сообщения от EventBus. Есть еще - когда я пытаюсь работать в третьем действии - сообщение умножается на 3 и так далее.
Вот код:
public class ManualControl extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//my other code here
}
@Override
protected void onPause()
{
super.onPause();
EventBus.getDefault().unregister(this);
}
@Override
public void onResume()
{
super.onResume();
EventBus.getDefault().register(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(MessageEventFromMain event)
{
//code to do when get message from MainActivity
};
private void sendMessage(String messageID, String messageName)
{
EventBus.getDefault().post(new MessageEventFromIntent(messageID, messageName));
}
}
Этот метод я использую для отправки сообщения в другую активность из MainActivity.
EventBus.getDefault().post(new MessageEventFromMain(messageFromSerial));
И поймать событие из других действий в MainActivity
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEventFromIntent(MessageEventFromIntent event)
{
//code to do when get message from intent
}
Как видите, я отменяю регистрацию onPause() и регистрирую onResume(), но когда я закрываю это действие и запускаю его снова, сообщения дублируются.
Пример:
1-е использование:
55017031011_TURN_STRAIGHT27
2-е использование:
55017031011_TURN_STRAIGHT2755017031011_TURN_STRAIGHT27
Я прочитал вопросы gitHub, но не нашел ответа.
И простите за ошибки.