음악 재생 - Service 사용 X
제가 작성한 tistory글의 마이그레이션입니다.
도입
이번 포스팅에서는 지난 포스팅에 이어 음악 플레이어에서 음악을 재생할 예정이다.
데이터의 흐름
음악 재생 Activity에 데이터를 전달 방법은
ListActivity가 Fragment에 모든 데이터를 전달하고 클릭을 통해 선택된 데이터의 Position(음악의 순번)을 PlayMainViewActivity에 전달한다.
(Fragment를 통해 PlayMainViewActivity에 전달하지 않고 ListActivity를 거쳐 전달한 이유는 Fragment는 View의 역할, ListActivity는 Controller의 역할로 나누기 위해 Interface를 사용했다.)
문제점 및 해결
처음 설계 때, ListActivity에서 PlayMainViewActivity로 데이터를 전달할 때 Model(Music)을 전달했다.
하지만 BaseActivity를 통해 ListActivity와 PlayMainViewActivity 모두 Model(Music)의 데이터를 가지고 있기 때문에 Position만 전달하는 것이 효율적이라고 생각해 설계를 변경하였다.
AS-IS | TO-BE |
---|---|
코드
public class PlayMainViewActivity extends BaseActivity {
// ...
public void initData() {
// Intent를 통해 position을 전달 받음
currentPosition = getIntent().getIntExtra("position", 0);
// 전달 받은 position으로 현재 음악 설정
currentMusic = musicDataController.getList()
.get(currentPosition);
// PlayerController에 현재 음악 설정
PlayerController playerController = PlayerController.getInstance();
playerController.setMusic(this, currentMusic.getMusicUri());
}
// ...
}
스크린샷
Author And Source
이 문제에 관하여(음악 재생 - Service 사용 X), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@heepie/음악-재생-Service-사용-X저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)