Я создаю приложение, которое передает музыку с веб-сервера. Приложение имеет переднюю службу, которая использует MediaPlayer для воспроизведения.
Мой код основан на этом примере: http://developer.android.com/guide/topics/media/mediaplayer.html
В этом примере ничего не пронизывается, кроме вызова prepareAsync(). Меня смущает то, что когда я читаю о классе службы, я нахожу эту информацию:
"Внимание: служба работает в основном потоке своего хостинга - служба не создает свой собственный поток и не запускается в отдельном процессе (если вы не указали иначе). Это означает, что, если ваша служба идет (например, воспроизведение MP3 или сетевое взаимодействие), вы должны создать новый поток в службе для выполнения этой работы. Используя отдельный поток, вы уменьшите риск приложения не реагировать (ANR) ошибки и основной поток приложения могут оставаться посвященными взаимодействию пользователя с вашими действиями".
Причина, по которой я спрашиваю, заключается в том, что приложение несколько раз (обычно при прекращении соединения) задерживает пользовательский интерфейс при потоковой передаче звука. Я полностью понимаю, что пользовательский интерфейс зависает, если служба делает интенсивную работу ЦП, поскольку активность и служба работают в одном потоке. Но должен ли я ожидать, что MediaPlayer будет настолько интенсивным? То есть, если он запускается в отдельном потоке?