1
저는 Android 뮤직 플레이어에서 일하고 있습니다. 서비스을 사용하여 노래를 재생하는 경우 노래를 저장하는 SQLite 데이터베이스 및 ContentProvider을 사용하여 sqlite 데이터베이스에 액세스합니다. 혼란 스럽습니다. 서비스와 활동 간의 관계를 어떻게 유지할 수 있습니까? 발표자와 서비스 간의 연결을 구현해야합니까? 내 서비스를 모델로 고려할 계획이라면 그렇게하기위한 가장 쉽고 쉬운 방법은 무엇일까요?Android MVP 아키텍처에서 서비스 및 활동을 분리하는 방법은 무엇입니까?
@Chornge 감사합니다. 이미 읽었습니다. 발표자에게 서비스 인스턴스를 전달할 수있어서 발표자가 활동과 서비스 간의 모든 상호 작용을 처리 할 수 있습니다. 그러나 저는 의심 스럽습니다. 우리는 활동과 서비스를 이렇게 분리 시켰습니까? 그것이 유일한 방법입니까? –
네, 당신은 그것들을 분리하고 있습니다 - 그들은 서로 기능에 의존하지 않고, 활동 코드는 서비스 클래스 안에 있지 않고 서비스 코드는 활동 클래스 안에 있지 않습니다. 즉, 모든 논리는 발표자 안에 있고 계약서를 사용할 수 있습니다. 액티비티 (뷰)와 도메인 객체 (서비스) 사이의 연결을 생성하고 서로에 대해 알 필요가 없습니다. 의존성 삽입으로 대거를 사용할 수 있습니다.이 방법으로 유닛 테스트는 mockito 또는 robolectric를 사용하여 응용 프로그램을 테스트 할 수 있습니다. – chornge
그것은 방법이지만, 그것은 옳은 길은 아닙니다. 안드로이드의 대부분의 것들과 마찬가지로, 그들은 한 가지를하는 많은 방법입니다. mvp 아키텍처와 동일하게, 가이드/블로그/기사를 읽을 때 - 같은 목표를 달성하기위한 다른 '맛'이 있음을 알 수 있습니다. 그것은 단지 한 가지 방법 일뿐입니다. u는 실험 할 수 있고 u에서 효과가있는 방법을 찾을 수 있습니다. – chornge