Android 카메라로 사진을 찍으려고합니다. 미리보기를 시작하고 사진을 찍을 수 있도록 프로그램을 시작할 때 1 초 정도 기다려야합니다. 나는 그것을 Handler와 함께했다 .postDelayed 그리고 그것은 잘 동작한다.Handler.postDelayed를 실행하기 위해 영원히 기다리는 중
지금, 내 문제는 run()이 실행될 때까지 프로그램의 흐름을 일시 중지하고 싶습니다. 메서드가 완료되었음을 알리는 플래그가있는 while (true) 루프를 사용했습니다. 그러나 프로그램이 멈 춥니 다. 오류가 반환되지 않습니다. 누군가는 약간의 불을 흘릴 수 있습니까? 그 다음 작업으로 이동합니다 현재 작업을 finishs 경우에, 그래서, 그래서,
안드로이드 작업 큐를 가지고 아래 설명해 드리죠,
flag = false;
handler.postDelayed(new Runnable() {
public void run()
{
preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback);
preview.camera.startPreview();
flag = true;
}
}, 1000);
while (true)
{
if (flag) break;
}
Runnable을 변수로 저장 한 다음 handler.removeCallbacks (실행 가능한 변수)를 호출하면 실행을 취소해야 할 때 –
응답을 주셔서 감사합니다.하지만 내 질문을 오해 한 것 같습니다. 처리기가 1 초 후에 종료되도록하고 run()이 작업을 마칠 때까지 코드의 흐름을 유지하려고합니다. – akka243
그럼 핸들러가 필요 없어요. Thread.sleep을 호출하거나 mutex (Object notify/wait)를 사용하십시오. –