2015-12-10 9 views
9

Stosuję wzorzec Present View modelu (MVP) podobny do przykładu Antonio Leivy, który można znaleźć tutaj: antoniolg/github.Jak uruchomić usługę z mojego Interactor, używając wzorca MVP w systemie Android?

Trochę się z tym bawiłem i zastanawiałem się, jak utworzyć service z warstwy interactor. Zwykle umieszczam moje wywołania retrofit wewnątrz interactor, ale zastanawiałem się, czy istnieje sposób na rozpoczęcie usługi od interactor, więc mogę uruchomić moje połączenia retrofit w usłudze. Problem polega na tym, że nie mam kontekstu działania, aby uruchomić usługę, i to w pewnym sensie pokonuje cel MVP, gdybym wystawił kontekst na interactor.

Nie jestem też do końca pewien, czy to dobrze, że robię (uruchamianie usług z interaktora). Zastanawiałem się nad uruchomieniem usług z warstwy presenter, ale zmierzam w ślepy zaułek, jak powinienem się do tego zbliżyć.

Jeśli istnieje sposób obejścia tego problemu, proszę pomóc komuś innemu? Albo oświeć mnie, jeśli nie jest to dobre podejście.

+0

mógłbyś pisać jakieś pseudo kod dla lepszego zrozumienia? – Spindizzy

Odpowiedz

0

Zdefiniuj klasę na przykład moja aplikacja rozszerza aplikację i określić sposób jak getAppInstance zwraca obiekt Application, a następnie dodać atrybut nazwa tej klasy do Applicqtion Tag w jawnym następnie wywołać tę metodę wewnątrz obudowy użyć, aby uzyskać obiekt kontekstowe i uruchomić usługę

public class MojaApl rozszerza stosowanie {

private MyApp instance; 

@Override 
public void onCreate() { 
    super.onCreate(); 

    instance = this; 

} 

@Override 
public void onTerminate() { 
    super.onTerminate(); 

    instance = null; 
} 

public MyApp getInstance(){ 
    return instance; 

} 

}

+0

Czy możesz podać przykłady kodu lub więcej szczegółów? Odpowiedź jest nieco słaba w treści :-) – Fabien

+0

Definiowanie klasy na przykład Moja aplikacja rozszerza Aplikację i definiuję metodę jak getAppContext zwraca Kontekst abd następnie dodaj nazwę tej klasy yo Tag Applicqtion w Manifest th3n wywołaj tę metodę wewnątrz twojego przypadku użycia aby uzyskać kontekst obiekt i rozpocznij służbę –

+0

Edytuj odpowiedź, a nie komentarze ;-) – Fabien

Powiązane problemy