Android App Design - синхронизация графического интерфейса с последовательностью звуков

1

Мне нужен совет. Im создание приложения, которое имеет последовательность из 4 действий, которые будут возникать, когда пользователь нажимает кнопку. Как только пользователь нажимает GO, эта кнопка должна быть неактивна, а некоторые визуальные сигналы в интерфейсе должны показать, какое из 4 действий происходит. (Например, изменение видимости ImageView). Графический интерфейс должен немедленно измениться, чтобы синхронизироваться со звуками, которые воспроизводятся.

После каждого из 4 действий GUI должен измениться, чтобы отразить, какое из действий в данный момент происходит.

Текущие попытки - я не могу изменить графический интерфейс перед тем, как начнется первое действие (звук воспроизводится), и в соответствующее время между действиями. Действия состоят в том, чтобы воспроизвести 4 разных звука. В настоящее время я использую MediaPlayer.

Мне не повезло, пытаясь заставить графический интерфейс обновляться, когда захочу. Я использовал AsyncTask и пробовал все комбинации setEnabled(), invalidate(), forceLayout(), refreshDrawableState(), чтобы попытаться заставить вещи произойти в gui, когда я хочу, чтобы они соответствовали 4 звукам, воспроизводимым последовательно.

Моя проблема заключается в том, что я пытаюсь сделать 4 вещи в одном обработчике onClick. Я действительно боролся с validate(), вызывающим reDraw на "когда-нибудь в будущем".

Я не знаю, какой шаблон дизайна лучше всего подходит для визуального восприятия четырех вещей, которые происходят последовательно.

Я просто начинаю смотреть на обработчиков. Это путь? Я думал, что это будет легко. Любой совет?

  • 0
    «Adive» может включать в себя учебники / книги, которые я не читал. Я работаю над книгами Commonsware, поэтому, если там есть известный полезный раздел, это было бы полезно.
  • 0
    Я надеялся, что кто-то может ответить на это.
Показать ещё 3 комментария
Теги:
multithreading
user-interface
design-patterns

1 ответ

0
Лучший ответ

Если я правильно onPreExecute методы onPreExecute и onPostExecute для AsyncTask выполняются в потоке графического интерфейса. Не работает ли обновление этих графических интерфейсов?

  • 0
    Да, я приму это как ответ. Это не очень гибко и не очень масштабируемо - организация кода чувствует себя очень неудобно для старых OO-программистов. Некоторая комбинация Handlers и AsyncTask в зависимости от того, что вы делаете. Моя проблема заключалась в том, что это должно быть так сложно, но как только ты начинаешь, это не так уж плохо ..... Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню