Mam jedną pojedynczą główną czynność, w której tworzę dynamicznie Strony wewnątrz ViewPagera (przez FragmentPagerAdapter). Jak na razie dobrze.Wiązanie i odszyfrowywanie usługi Android do/z Fragmentu (w ViewPager)
Teraz mam Service-Implementation Chcę, aby ta aktywność/te fragmenty były powiązane. I właśnie o to pytam, która jest najlepszą praktyką.
- Powiązanie z działaniem i przekazanie fragmentu do usługi za pośrednictwem wywołania zwrotnego za pośrednictwem działania? (binding/unbinding in onCreate()/onDestroy())
- Powiązanie z każdym fragmentem podczas tworzenia i rozpinania po zniszczeniu? (tak jak powyżej)
Obie implementacje działają. Ale drugi oferuje prostszą komunikację z usługą.
Podczas testowania drugie fragmenty są przypisywane do usługi podczas tworzenia. Ale kiedy usuwam wszystkie oprócz jednego, wydaje się, że nie są zniszczone. Kiedy zaczynam tworzyć od tego momentu fragmenty (tylko 1 fragment po usunięciu innych), wiązanie z serwisem ma miejsce tylko wtedy, gdy tworzę więcej fragmentów niż wcześniej.
Być może ponownie, aby uzyskać lepszy przegląd.
- tworzyć aktywności z jednego fragmentu z pagera: usługi związane z fragmentem
- utworzyć 2 kolejne fragmenty w pagera: usługa conntected każdego tworzenia
- usunięcie wszystkich z wyjątkiem jednego fragmentu: niewiążące nie wydaje się być nazywany
- utworzyć 2 kolejne fragmenty jeszcze: usługa nie wydaje się być związany
- utworzyć inny fragment o usługi conntected na tworzenie
Czy to zachowanie można się spodziewać? Czy to jest realizacja, którą powinienem wybrać; oczywiście prostsza komunikacja jak w przypadku komunikacji zwrotnej?
Dzięki za twój wkład z góry!
Zbudowałem podobny scenariusz przy użyciu twojego pierwszego podejścia (aktywność zarządza komunikacją do usługi) i działało całkiem nieźle. To pozwala mi dzielić połączenie usługowe we wszystkich fragmentach i umożliwiać fragment "więcej" natychmiastowego dostępu do usługi (bez konieczności radzenia sobie z asynchronizacją wiązania). – roostertech