Android 앱에서 작업 중이며 하드웨어와 함께보기를 동기화 할 수 없습니다. 설명해 드리겠습니다.스레드 동기화 Java
1) I 뮤트 및 스레드의 실행 방법 내에서 어레이 (A)에 저장된 임의의 잠 무작위 값()에 기초하여 안드로이드 뮤트 해제 마이크 1
2) I 블루 펄스 무승부 뮤트를 반영 마이크. 이것은 독립적 인 View 클래스에 의해 수행됩니다.
3) onTick 내에서 카운트 다운 타이머를 호출하여 위의 그림에서 그린 그래프를 가로 질러 빨간색 선을 이동합니다.
내가 두 개의 스레드를 시작 하나 다른, 이런 식 후 :Thread1.start
counter.start();
두 가지 방법을 동기화하는 방법은 한 번에 세 가지를 수행하고 여러 스레드를 피하기를 원합니다. 세 가지 사항은 다음과 같습니다. 펄스 (일정)를 그립니다. 빨간색 선을 x 축으로 이동시키고 전화기가 음소거 되 자마자 파란색 펄스를 터치하고 1 초마다 계속 움직이면서 펄스의 폭은 지연 지속 시간을 반영합니다. 마이크가 음소거가 해제 되 자마자 빨간색 선이 맥을 떠나 앞으로 움직여야합니다.
현재 코드는 내가 원하는 것을하고 있습니다. 그러나 동기화가 없다. 마이크가 먼저 작업을 수행하거나 그래프가 빠르게 움직입니다. 그들은 동기화되어 있지 않습니다.
스레드를 보유하고 강제로 coutdowntimer로 작동 시키거나 둘 다 동기화 할 수있는 방법이 있습니까? 1 초마다 x 축을 따라 진행해야하기 때문에 스레드 1에 빨간색 선 이동을 포함시킬 수 없습니다.
잠자기, 깨우기, 음소거, 잠자기, 깨우기, 음소거 해제, 잠자기, 깨우기, 음소거, 잠자기 등 ...? 파란색 선이 나타나 자마자 빨간색 선이 그려지기 시작하고 마이크가 음소거 해제 된 정확한 시간에 맥박을 떠나기 위해 필요한 속도로 이동해야합니까? –
Thread1 무효 실행()에 대한 { (10 회) { audioService.setMicrophoneMute (거짓); thread.sleep; audioService.setMicrophoneMute (true); thread.sleep; } } –