Android camera locked after force close

前端 未结 4 1889
不思量自难忘°
不思量自难忘° 2020-12-16 17:29

I have an application where I use devices camera.

Now I only release camera in normal flow.

@Override
public void surfaceDestroyed(SurfaceHolder surf         


        
4条回答
  •  青春惊慌失措
    2020-12-16 18:19

    As @CommonsWare suggested, if you want to make sure, that your application releases Camera before crashing you should use Thread.setDefaultUncaughtExceptionHandler().

    Or if you're using Bugsense:

    private class MyCameraActivity extends Activity implements SurfaceHolder.Callback, ExceptionCallback {
    
        @Override
        protected void onCreate(Bundle sSavedInstanceState) {
            super.onCreate(sSavedInstanceState);
    
            BugSenseHandler.setExceptionCallback(this);
        }
    
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            this.camera = open();
    
            try {
                camera.setPreviewDisplay(holder);
            } catch (IOException e) {
                Log.e(TAG, e.getMessage(), e);
            }
    
            // other camera stuff
        }
    
        @Override
        public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
            releaseCamera();
        }
    
        @Override
        public void lastBreath() {
            releaseCamera();
        }
    
        private void releaseCamera() {
            if (camera != null) {
                camera.stopPreview();
                camera.release();
            }
        }
    } 
    

提交回复
热议问题