2015-12-10 7 views
9

Antonio Leivaさんの例に似たモデルビュープレゼンター(MVP)のパターンに従っています:antoniolg/githubアンドロイドでMVPパターンを使用してInteractorからサービスを開始するにはどうすればよいですか?

私はこれをかなり使い慣れていて、interactor層からserviceをどのように起動するのかと思いました。通常私はinteractorの中に私のretrofitコールを入れていましたが、interactorからサービスを開始する方法があるかどうか疑問に思っていましたので、代わりにサービスでretrofitコールを実行できます。ここでの問題は、サービスを実行するためのアクティビティコンテキストがなく、interactorにコンテキストを公開する場合、MVPの目的を破るようなことです。

これが良いことでも(インタラクターからのサービスを開始しているのか)、私はあまりよく分かりません。私は代わりにpresenterレイヤーからサービスを開始することを考えていましたが、私はこれにどのように近づいていくべきかについて、行き詰まっています。

これを回避する方法がある場合は、仲間を助けてください。これが良い方法でない場合は、私に教えてください。

+0

は、あなたがより良く理解するためのいくつかの擬似コードを投稿してもらえますか? – Spindizzy

答えて

0

クラスを定義するMy Appはアプリケーションを拡張し、getAppInstanceのようなメソッドを定義するとApplicationオブジェクトが返され、このクラスのname属性がManifestのApplicqtionタグに追加され、ユースケース内でこのメソッドが呼び出されてコンテキストオブジェクトが取得され、サービスが開始されます。

パブリッククラスMyAppには、アプリケーションを拡張{

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

コード例や詳細を教えてください。答えは少し貧弱です:-) – Fabien

+0

クラスを定義します。たとえば、アプリケーションがアプリケーションを拡張し、getAppContextのようなメソッドを定義します。コンテキストabdがこのクラスの名前を追加します。Applicqtion Manifestのタグth3nコンテキストを取得するためにユースケース内でこのメソッドを呼び出します。オブジェクトとサービスを開始 –

+0

あなたの答えではなく、コメントを編集してください;-) – Fabien

関連する問題