2011-04-27 2 views
2

저는 앱이 보이지 않고 사용자가 다른 앱을 열어도 음악이 재생되는 MP3 플레이어를 만들려고합니다. 나는 옳은 길 (아무 말장련이 의도 된)에 있는지 잘 모르겠다. 이것들은 지금까지 제 코드를 기반으로 한 가정들입니다 ...Android MP3 플레이어를 만드는 방법을 알려주세요.

  1. 백그라운드에서 음악을 재생하려면 서비스를 사용해야합니다.
  2. 이 서비스의 경우 시작 서비스와 반대되는 바인딩 서비스를 사용하는 것이 가장 좋습니다.
  3. 나는이 서비스를 바인더 클래스를 확장하여 바인딩 할 수 있습니다. (AIDL은 서비스에 액세스하기 위해 다른 응용 프로그램이 필요하지 않고 다른 응용 프로그램 만 필요하기 때문에 AIDL이 과용되었습니다.
  4. 서비스는 메모리가 부족할 때 시스템을 종료 할 수 없도록 전경 서비스 여야합니다.

내 서비스가 CPU 집약적 인 작업 (음악 재생)을 수행 할 예정인대로 나는 그 작업을 수행하는 데 새로운 스레드가 필요하다는 것을 이해합니다.

서비스 내에서 새 스레드를 만들어 작업을 수행합니까, 아니면 내 활동에서 새 스레드를 만들고 해당 스레드에서 서비스를 실행할 수 있습니까? 사전에

덕분에, M.

답변

2

나는 백그라운드에서 음악을 재생 가능하게하는 서비스를 사용해야합니다.

예.

이 서비스의 경우 시작 서비스와 반대되는 바인딩 서비스를 사용하는 것이 가장 좋습니다.

절대적으로 아닙니다. 사실 일단 액티비티가 바인딩 해제되면 (예 : onDestroy()) 서비스가 종료되기 때문에 바운드 서비스만으로는 수행 할 수 없습니다.

나는이 서비스를 바인더 클래스를 확장하여 바인딩 할 수 있습니다 (AIDL을 사용하면 서비스에 액세스하기 위해 다른 앱이 필요하지 않으므로 과용됩니다. 내 앱만 가능).

예.

서비스는 메모리가 부족할 때 시스템을 죽일 후보가 아니기 때문에 전경 서비스 여야합니다.

예.

내 서비스는 CPU 집약적 인 작업 (음악 재생)을 수행 할 것입니다. 그 작업을 수행하는 데 새로운 스레드가 필요하다는 것을 알고 있습니다.

이는 자동으로 MediaPlayer으로 처리됩니다.

서비스 내에서 새 스레드를 만들어 내 작업을 수행합니까, 아니면 내 활동에서 새 스레드를 만들고 해당 스레드에서 서비스를 실행할 수 있습니까?그

없음이 필요하지 않습니다.

+0

많은 감사, 매우 유용합니다! – MickeyR

관련 문제