Я бы настроил Службу для управления медиаплеером и AsyncTask для отображения приложения.
Ваше приложение должно отправлять сообщения в службу для остановки, запуска (с помощью кнопок onClick) и получения информации о текущем положении, когда требуется обновить информацию на экране. Это отделит игру от контролирующей.
Ваше приложение может использовать простой AsyncTask для приостановки (SystemClock.sleep (1000)) в фоновом потоке и обновления любых ползунков и т. Д. В потоке хода обновления, который выполняется в пользовательском интерфейсе. Нет необходимости писать какой-либо специфичный для Thread код, если вы разделяете обязанности таким образом.