public void quitSynchronously() { state = State.DONE; cameraManager.stopPreview(); Message quit = Message.obtain(decodeThread.getHandler(), ID.quit); quit.sendToTarget(); try { // Wait at most half a second; should be enough time, and onPause() will timeout quickly decodeThread.join(500L); } catch (InterruptedException e) { // continue } // Be absolutely sure we don't send any queued up messages removeMessages(ID.decode_succeeded); removeMessages(ID.decode_failed); }
public void quitSynchronously() { state = State.DONE; cameraManager.stopPreview(); Message quit = Message.obtain(decodeThread.getHandler(), ID.quit); quit.sendToTarget(); try { // Wait at most half a second; should be enough time, and onPause() will timeout quickly decodeThread.join(500L); } catch (InterruptedException e) { // continue } // Be absolutely sure we don't send any queued up messages removeMessages(ID.decode_succeeded); removeMessages(ID.decode_failed); }
private void closeDriver() { notifyListenerPrepareClose(); mErrorCode = ERROR_CODE_NULL; if (mScanHandler != null) { mScanHandler.quitSynchronously(); mScanHandler = null; } if (mCameraManager != null) mCameraManager.stopPreview(); mAmbientLightManager.pause(); if (mCameraManager != null) mCameraManager.closeDriver(); mCameraManager = null; notifyListenerClosed(); }
private void closeDriver() { notifyListenerPrepareClose(); mErrorCode = ERROR_CODE_NULL; if (mScanHandler != null) { mScanHandler.quitSynchronously(); mScanHandler = null; } if (mCameraManager != null) mCameraManager.stopPreview(); mAmbientLightManager.pause(); if (mCameraManager != null) mCameraManager.closeDriver(); mCameraManager = null; notifyListenerClosed(); }