nocneszczury
#java #androiddev #programowanie. Mam dziwny problem z EventBus.
Mam Activity, SerwisA i SerwisB.
Pomiedzy Activity a SerwisemA dwustronna komunikacja przebiega bez problemow (rejestruje EventBus w obu klasach, mam metody z ad. Subscribe, wysylam metoda post(E e) .

Problem zaczyna sie gdy chce uzyc SerwisuB. Moge w nim otrzymac dane za pomoca Subscribe, ale nie dziala post(E e).
Co moze wplywac na to, ze w jedym serwisie dziala a w innym nie?
Oczywiscie w debbugerze sprawdzilem ze jest wywolywana metoda post(E e); ( ͡° ͜ʖ ͡°)
  • Najlepsze
  • Wszystkie komentarze
fegwegw
@panryz: Powtarzam to już kolejny raz - wszystko można zrobić na dwa sposoby - dobrze i źle.
A argumenty w stylu:

Na dodatek metody nie są widoczne jako używane


to już absurd, i zalatuje to IDE driven developmentem. O, Eklips nie podpowiada czegoś, i biedny programista się gubi? Winą należy obarczać swój warsztat, a nie specyfikę architektury. To samo tyczy się debugowania - aplikacje wielowątkowe również debuguje się ciężej, czy
fegwegw
Najlepsza rada to nie używaj event busa. Nie świadczy to dobrze o programiscie jeśli ucieka się do używania takich wynalazków.


@samba_del_diablo: co
samba_del_diablo
samba_del_diablo
Najlepsza rada to nie używaj event busa. Nie świadczy to dobrze o programiscie jeśli ucieka się do używania takich wynalazków.
p.....z
p.....z
@fegwegw: To akurat prawda. EventBus sprowadza się do refleksji, przez co często eventy moga trafiać nie tam gdzie chcemy. Na dodatek metody nie są widoczne jako używane. A no i jakbyś chciał debugować takie eventy, to ma informacji skąd one przylatują. Dobrym rozwiązaniem jest wydzielenie interfejsu i za pomocą PublishSubject z RxJavy to robić.
nocneszczury
nocneszczury Autor
1
@nocneszczury: Problem rozwiazany, za pozno rejestrowalem odbiornik ( ͡° ͜ʖ ͡°)
rex1313
@fegwegw: Tak, dokladnie - przeczytalem to na blogu cleancodedlaopornych.prv.com.eu. Nie, nie powtarzam za tlumem, ze Java jest powolna, refleksja jest zla, a singleton to antywrzocec. Refleksja jest zla praktyka ( zreszta tak samo jak i Singleton ), kiedy jest uzywana bez potrzeby ( bo tak jak mowilem przedtem: jest powolna, jest niebezpieczna, kod jest malo czytelny i trudny do rozbudowy i podatny na bugi, ktore trudno jest znalezc ). Wg
p.....z
p.....z
@fegwegw: Podałem w sumie 4 argumenty na nie. Na tak jest tylko że jest prosto przekazać dane.
rex1313
@fegwegw: E tam. Refleksje akurat zazwyczaj nie sa dobra praktyka programistyczna. Jedna z istotnych rzeczy w programowaniu to readibility kodu, a takie rzeczy jak refleksje powoduja, ze kod jest mniej czytelny i trudniejszy do debugowania ( juz pomijajac to, ze sa powolne ). Do tego nie rozumiem tego "O, Eklips nie podpowiada czegoś, i biedny programista się gubi? ", czy dobry warsztat to nie taki, gdzie Twoj kod moze inny
fegwegw
Refleksje akurat zazwyczaj nie sa dobra praktyka programistyczna.


@rex1313: Bo tak wyczytałeś na blogu 'cleancodedlaopornych.prv.com.eu'? Potrafisz to sensownie uargumentować, czy tylko powtarzasz za tłumem: 'java jest powolna, refleksja jest zła, singleton to antywzorzec, hurr durr!' ?

Jeśli używasz refleksji, żeby w teście dobrać się do wartości prywatnego pola, to tak, jest to zła praktyka. Ale refleksji używa multum wyżej poziomowych zabawek, z których korzystasz na co dzień, i nawet nie
nocneszczury
nocneszczury Autor
0
Widze ze moj wpis wywolal male poruszenie ;)
@rex1313: polecisz jakies artykuly/prezentacje/ksiazki jesli chodzi o laczenie roznych komponentow w Androidzie? EventBus lubie, bo mozna zrobic cos "na szybko" i nie wymaga pisania dlugich litanii kodu, ale zdaje sobie sprawe ze to nie jest najlepsze rozwiazanie.