본문

[2017.11.13] 72. Android 음악 플레이어 프로젝트 [최적화 2 - 설계 변경]

도입

이번 포스팅에서는 

버튼 클릭에 따른 데이터의 흐름을 최적화할 예정이다.


문제점

버튼은 총 2곳에 존재한다.

현재음악을 보여주는 메인 페이지(PlayMainViewActivity)와 현재음악의 상태를 보여주는 알림바(Notification)에 버튼이 있다.

 

기존의 데이터 흐름을 그림으로 확인해보면

다음과 같이 Notification에서 다음(Next), 이전(Prev) 버튼을 클릭하면 PlayMainViewActivity는 Seekbar Thread를 통해 데이터를 전달 받아 반영했다. (2 Step)

 

이 경우, 문제점은 버튼 클릭에 대한 결과 반영이 Seekbar Thread의 주기인 1초 뒤에 반영된다는 것이다.


해결책

그래서 Notification의 변경 사항을 PlayMainViewActivity에 바로 전달하도록 Interface 구현 후 반영했다. 

그래서 데이터의 흐름은

 

그러면 다음과 같이 1 Step으로 데이터를 전달하는 것이 가능하다.

 

이를 구현하기 위해 일방향 통신이었던 StartService를 BindService로 변경했다. 


스크린 샷

문제점 반영 후가 더 자연스럽게 넘어가는 것을 느낀다. (움짤이어서 느껴지지는 않는다...)

반영 전

반영 후

 

 

 

#안드로이드 음악 플레이어 #안드로이드 mp3 #안드로이드 프로젝트  #앱개발 #모바일앱개발 #어플개발

공유

댓글