Mam aplikację, która z jednej strony jest kontrolowana przez eventy podawane w wiadomościach z socketu (zwykły java socket + protobuf + service mojego autorstwa spinający to z handlerem), a z drugiej strony przez użytkownika.

Do tej pory napisałem activity wyboru serwera, activity głownego ekranu aplikacji, activity ustawień itd. Problemem jest przełączanie miedzy konkretnymi activities zależnie od eventów pochodzących z socketu i od użytkownika. W innych językach zrobiłbym jakiś pośredni obiekt między klientem socketu a activities, która by był maszyną stanów kontrolującą co jest wyświetlane. Tym sposobem mógłbym zmieniać sobie stan aplikacji z dwóch stron i mieć wygodną kontrolę nad całością. Niestety, to jest moja pierwsza poważniejsza aplikacja na Androida i brakuje mi elementarnej wiedzy o możliwej stukturze aplikacji na tych urządzeniach :/

Czy mógłby ktoś mi doradzić jak poprawnie zaplanować strukturę tej aplikacji? Czy powinienem pozostać przy wielu activity i szukać obiektu który może nad nimi panować, czy jednak spróbować przepisać aplikację na jedno activity z zmianą layoutu za pomocą biblioteki FSM typu EasyFlow?