@Override public void onDestroy() { super.onDestroy(); Log.v(TAG, "onDestroy: service destroyed"); if (mCameraDevice.isFlashlightOn()) { Log.w(TAG, "Flashlight still on"); if (!mCameraDevice.toggleCameraLED(false, false)) { Log.e(TAG, "Cannot toggle camera LED"); } } // mCameraDevice.stopPreview(); // handled in surface callback mCameraDevice.releaseCamera(); mCameraDevice = null; // remove the overlay WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); wm.removeView(mOverlay); mOverlay = null; mSurfaceView = null; }