我正在嘗試使用Android相機拍照。當程序第一次啓動時,我需要等待1秒左右,以便預覽可以啓動並且可以拍攝照片。我用Handler.postDelayed做到了這一點,它工作正常。Handler.postDelayed永久等待執行
現在,我想暫停程序的流程,直到run()被執行,其中我用了一個帶有標誌的while(true)循環來表示該方法已完成。但是,程序凍結。沒有錯誤返回。任何人都可以灑一些燈?下面是我的代碼
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或使用互斥(對象通知/等待) –