나는 안드로이드 개발에 비교적 익숙하지 않다. 그리고 늦게 나는 안드로이드에서 MVP 아키텍처를 살펴보고있다. 주로 프로젝트에서 제공하는 디커플링 및 테스트 혜택을 위해 프로젝트에서 구현하기 시작합니다.Android Bound Services 및 MVP 디자인 패턴?
지금은 Intent Services를 사용하여 API에 GET 및 POST REST 호출을하는 프로젝트를 진행하고 있습니다. ResultReceivers를 사용하여 호출 결과 (데이터, 오류 등)를 Activity/Fragment에 직접 압축합니다. 나는 이것을 리팩토링하고 싶지만 계속 진행하는 방법에 대해서는 여전히 확신 할 수 없다.
BoundService를 사용하고 싶습니다. 사용자가 액티비티가 포 그라운드에있는 동안 사용자가 여러 번 호출 할 수 있기 때문에 BoundService에서 노출 된 인터페이스를 모델 클래스에 사용하는 것이 더 명확한 접근이라고 생각합니다. 그러나 BoundService가 네트워크 호출을하고 있기 때문에 UI 스레드에서 호출을해야합니다 (예 : AsyncTask 사용). 이것은 내가 무엇보다 더 붙어있는 곳입니다. 비동기 작업은 어디에 속합니까? 발표자는 여러 가지 오류/예외를 처리하고 응답해야하며 각 시나리오에 대해 적절한 뷰 메서드를 호출해야합니다. AsyncTask의 onPostExecute() 메서드에서 예외/오류를 조사하기 위해 일종의 래퍼 클래스를 만들려고 생각하고 있었지만 이런 종류의 문제가 이전에 다른 사람들에게 떠오를 것으로 생각했습니다. 따라서이 질문을 던집니다.
순수한 사람 안드로이드 솔루션에 대한 제안이있는 사람이 있습니까? 나에게 제공 할 수있는 제안이나 조언이 있습니까? 나는 온라인으로 수색했으며 어려움을 겪고있다. 내가 찾은 대부분의 사람들은 네트워크 통화를하는 예를 가지고 있지 않으며, 그렇게한다면 타사 라이브러리를 사용합니다.
감사를 발명하는 훌륭한 라이브러리 Retrofit2
및하지로 사용할 수 있지만 내가 특별히 서비스가 MVP 패턴에서 사용할 수있는 방법을 찾고 있어요. 주 스레드에서 네트워크 호출을 호출 할 수 없기 때문에 다른 메커니즘을 사용해야합니다. 이 메커니즘 (예 : AsyncTask)이 MVP에있는 경우 MVP 패턴과 관련하여 방향 또는 참조를 사용할 수 있습니다 – JPM