diff options
-rw-r--r-- | src/com/android/camera/CameraHolder.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/com/android/camera/CameraHolder.java b/src/com/android/camera/CameraHolder.java index 18abd15..a4c1537 100644 --- a/src/com/android/camera/CameraHolder.java +++ b/src/com/android/camera/CameraHolder.java @@ -73,7 +73,14 @@ public class CameraHolder { public void handleMessage(Message msg) { switch(msg.what) { case RELEASE_CAMERA: - releaseCamera(); + synchronized (CameraHolder.this) { + // In 'CameraHolder.open', the 'RELEASE_CAMERA' message + // will be removed if it is found in the queue. However, + // there is a chance that this message has been handled + // before being removed. So, we need to add a check + // here: + if (CameraHolder.this.mUsers == 0) releaseCamera(); + } break; } } |