Я работаю над Android-приложением и не могу синхронизировать View with Hardware. Позвольте мне объяснить.Синхронизация потоков Java
1) Я Отключение и включение микрофона из Android на основе случайных значений (которые являются случайными) спит, хранящихся в массиве А, в рамках метода выполнения резьбы 1.
2) Обращаю голубые импульсы, которые отражают приглушения микрофона. Это делается независимым классом View.
3) Я перемещаю красную линию по графику, нарисованному в виде сверху, путем вызова внутри onTick таймера обратного отсчета.
я начала два потока один за другим, таким образом:
Thread1.start
counter.start();
Как синхронизировать оба из них, я хочу делать три вещи одновременно и избегать нескольких потоков. Три вещи: Нарисуйте импульсы (которые постоянны), сделайте красную линию движением по оси x и коснитесь синего импульса, как только телефон отключится, и продолжайте движение каждую секунду, ширина импульса отражает длительность задержки. как только микрофон будет отключен, красная линия должна оставить импульс и двигаться вперед.
В настоящее время код выполняет то, что я хочу. но синхронизация не происходит. Либо микрофон выполняет свою работу сначала, либо график быстро перемещается. Они не синхронизированы.
Есть ли способ удержать нить, заставить ее вести себя как coutdowntimer или синхронизировать их оба. Я не могу встроить движение красной линии в поток 1, потому что он должен будет проходить через ось x каждую секунду.
Нужно уточнить: есть ли Thread1, спать, бодрствовать, заглушать, спать, бодрствовать, отключать, спать, бодрствовать, заглушать, спать ... и т. Д.? Красная линия должна начать рисовать, как только появится синий импульс, и пройдите скорость, необходимую для того, чтобы оставить импульс в то самое время, когда микрофон отключен? –
Резьба1 недействительной Run() { для (в 10 раз) { audioService.setMicrophoneMute (ложь); thread.sleep; audioService.setMicrophoneMute (true); thread.sleep; } } –