我的相机活动不断强制关闭onSurfaceDestroyed [英] My Camera activity keeps force closing onSurfaceDestroyed

查看:186
本文介绍了我的相机活动不断强制关闭onSurfaceDestroyed的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SO家伙,我想提出一个摄像头应用程序,我不明白所有的code,但大部分。我复制了一些从网上code。我的活动一直强制关闭onSurfaceDestroyed方法。我不知道为什么它一直关闭,当我点击一张图片。因为当我点击一张图片,我开始的意图去一个新的活动。即当表面被破坏。顺便说一下我的面是相对布局上我的相机preVIEW正在发生。该错误是发生在ShowCamera类在OnSurfaceDestroyed方法。我可以看到preVIEW。当我尝试点击一个PIC的应用程序关闭。

这是我的code。从我MainActivity.java我在onCreateMethod送code以下

 相机frontCam = Camera.open(1)// 1为前凸轮
显示相机showCamera =新ShowCamera(这一点,frontCam);
 

从MainActivity.java我发送图片的code以下参考OnCapture

 私人PictureCallback capturedIt =新PictureCallback(){

    @覆盖
    公共无效onPictureTaken(byte []的数据,摄像头摄像头){

        点阵位图= BitmapFactory.de codeByteArray(数据,0,data.length);

        如果(位图== NULL){
            Toast.makeText(getApplicationContext(),而不是采取
                    Toast.LENGTH_SHORT).show();
        } 其他 {
            Toast.makeText(getApplicationContext(),取,
                    Toast.LENGTH_SHORT).show();
            意图viewerIntent =新的意向书(com.tyrone.mirrorapp.AFTERCAPTURE);
            viewerIntent.setClass(MainActivity.this,afterCapture.class);
            捆绑bitmapBundle =新包();
            bitmapBundle.putByteArray(clickedBitmap,数据);
            viewerIntent.putExtras(bitmapBundle);
            startActivityForResult(viewerIntent,0);
        }
        cameraObject.release();
    }

};
 

这是低于

我ShowCamera.java类

 公共类ShowCamera扩展了SurfaceView实现SurfaceHolder.Callback {

私人SurfaceHolder holdMe;
   相机theCamera;

公共ShowCamera(上下文的背景下,相机摄像头){
      超(上下文);
      theCamera =摄像头;
      holdMe = getHolder();
      holdMe.addCallback(本);
   }

   @覆盖
   公共无效surfaceChanged(SurfaceHolder为arg0,诠释ARG1,诠释的宽度,高度INT){
       theCamera.setDisplayOrientation(90); // CZ氟利昂凸轮不调整。
       theCamera.start preVIEW();
   }

   @覆盖
   公共无效surfaceCreated(SurfaceHolder持有者){
       尝试 {
        theCamera.set previewDisplay(保持器);
    }赶上(IOException异常E){
        e.printStackTrace();
    }
   }

   @覆盖
   公共无效surfaceDestroyed(SurfaceHolder持有者){
       theCamera.set previewCallback(空);
       theCamera.stop preVIEW();
       theCamera.release();
       theCamera = NULL;
   }

}
 

我的活动保持力收盘破坏活动。任何想法的原因可能是什么? 附: :我不能完全肯定它的力量关闭onSurfaceDestroyed。请纠正我,如果我错了。谢谢

我的日志文件的一部分

  11-18 20:30:31.877:I / SurfaceView(21648):回调 - > surfaceCreated
11-18 20:30:31.877:I / SurfaceView(21648):surfaceCreated回调+
11-18 20:30:31.877:D /设置preVIEW显示(21648):准备工作
11-18 20:30:31.879:D / AndroidRuntime(21648):关闭虚拟机
11-18 20:30:31.879:W / dalvikvm(21648):主题ID = 1:螺纹退出与未捕获的异常(组= 0x41a00c98)
11-18 20:30:31.879:W / dalvikvm(21648):主题ID = 1:发生未捕获的异常
11-18 20:30:31.879:W / System.err的(21648):java.lang.RuntimeException的:方法释放后称为()
11-18 20:30:31.880:W / System.err的(21648):在android.hardware.Camera.set previewDisplay(本机方法)
11-18 20:30:31.880:W / System.err的(21648):在android.hardware.Camera.set previewDisplay(Camera.java:580)
11-18 20:30:31.880:W / System.err的(21648):在com.tyrone.mirrorapp.ShowCamera.surfaceCreated(ShowCamera.java:66)
11-18 20:30:31.880:W / System.err的(21648):在android.view.SurfaceView.updateWindow(SurfaceView.java:662)
11-18 20:30:31.881:W / System.err的(21648):在android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:256)
11-18 20:30:31.881:W / System.err的(21648):在com.tyrone.mirrorapp.ShowCamera.onWindowVisibilityChanged(ShowCamera.java:98)
11-18 20:30:31.881:W / System.err的(21648):在android.view.View.dispatchWindowVisibilityChanged(View.java:8096)
11-18 20:30:31.881:W / System.err的(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881:W / System.err的(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881:W / System.err的(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881:W / System.err的(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881:W / System.err的(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881:W / System.err的(21648):在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1448)
11-18 20:30:31.881:W / System.err的(21648):在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1192)
11-18 20:30:31.881:W / System.err的(21648):在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6231)
11-18 20:30:31.881:W / System.err的(21648):在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:788)
11-18 20:30:31.882:W / System.err的(21648):在android.view.Choreographer.doCallbacks(Choreographer.java:591)
11-18 20:30:31.882:W / System.err的(21648):在android.view.Choreographer.doFrame(Choreographer.java:560)
11-18 20:30:31.882:W / System.err的(21648):在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:774)
11-18 20:30:31.882:W / System.err的(21648):在android.os.Handler.handleCallback(Handler.java:808)
11-18 20:30:31.882:W / System.err的(21648):在android.os.Handler.dispatchMessage(Handler.java:103)
11-18 20:30:31.882:W / System.err的(21648):在android.os.Looper.loop(Looper.java:193)
11-18 20:30:31.882:W / System.err的(21648):在android.app.ActivityThread.main(ActivityThread.java:5292)
11-18 20:30:31.882:W / System.err的(21648):在java.lang.reflect.Method.invokeNative(本机方法)
11-18 20:30:31.882:W / System.err的(21648):在java.lang.reflect.Method.invoke(Method.java:515)
11-18 20:30:31.883:W / System.err的(21648):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:824)
11-18 20:30:31.883:W / System.err的(21648):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
11-18 20:30:31.883:W / System.err的(21648):在dalvik.system.NativeStart.main(本机方法)
11-18 20:30:31.883:W / dalvikvm(21648):主题ID = 1:调用的UncaughtExceptionHandler
11-18 20:30:31.885:E / AndroidRuntime(21648):致命异常:主要
11-18 20:30:31.885:E / AndroidRuntime(21648):工艺:com.tyrone.mirrorapp,PID:21648
11-18 20:30:31.885:E / AndroidRuntime(21648):java.lang.RuntimeException的:方法释放后称为()
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.hardware.Camera.set previewDisplay(本机方法)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.hardware.Camera.set previewDisplay(Camera.java:580)
11-18 20:30:31.885:E / AndroidRuntime(21648):在com.tyrone.mirrorapp.ShowCamera.surfaceCreated(ShowCamera.java:66)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.SurfaceView.updateWindow(SurfaceView.java:662)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:256)
11-18 20:30:31.885:E / AndroidRuntime(21648):在com.tyrone.mirrorapp.ShowCamera.onWindowVisibilityChanged(ShowCamera.java:98)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.View.dispatchWindowVisibilityChanged(View.java:8096)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1448)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1192)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6231)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:788)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.Choreographer.doCallbacks(Choreographer.java:591)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.Choreographer.doFrame(Choreographer.java:560)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:774)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.os.Handler.handleCallback(Handler.java:808)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.os.Handler.dispatchMessage(Handler.java:103)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.os.Looper.loop(Looper.java:193)
11-18 20:30:31.885:E / AndroidRuntime(21648):在android.app.ActivityThread.main(ActivityThread.java:5292)
11-18 20:30:31.885:E / AndroidRuntime(21648):在java.lang.reflect.Method.invokeNative(本机方法)
11-18 20:30:31.885:E / AndroidRuntime(21648):在java.lang.reflect.Method.invoke(Method.java:515)
11-18 20:30:31.885:E / AndroidRuntime(21648):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:824)
11-18 20:30:31.885:E / AndroidRuntime(21648):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
11-18 20:30:31.885:E / AndroidRuntime(21648):在dalvik.system.NativeStart.main(本机方法)
 

的异常情况onSurfaceCreated解决方案

您的日志状态。此回调被调用之前的 theCamera 对象被释放。请检查您在您的应用程序发布的相机。也许,你放开你传递后的 frontCam ShowCamera 构造在的onCreate()

OK,你解释说,出现这种情况,当你从另外一个返回MainActivity 的。通常的做法是在 onResume()打开摄像头,并释放的onPause()。也可以在 ShowCamera.surfaceCreated在打开相机(),和释放(如在code以上)ShowCamera.surfaceDestroyed( )

建议在后台线程中打开摄像头,不过这需要调用更加细腻调度 Camera.set previewDisplay()

SO guys I am making a Camera Application and I don't understand all the code but most of it. I copied some of the code from the net. My activity keeps force closing onSurfaceDestroyed method. I can't tell why it keeps closing when I click a picture. Because when I click a picture I start an Intent to go to a new activity. That is when the surface gets destroyed. Btw my surface is a relative layout on which my camera preview is taking place. The error is taking place in the ShowCamera class in the OnSurfaceDestroyed method. I can see the preview. The app closes when I try to click a pic.

This is my code. From my MainActivity.java I send the code below in the onCreateMethod

Camera frontCam = Camera.open(1) // 1 is for front cam
Show Camera showCamera = new ShowCamera(this, frontCam);

From the MainActivity.java I send the code below onCapture of a picture

private PictureCallback capturedIt = new PictureCallback() {

    @Override
    public void onPictureTaken(byte[] data, Camera camera) {

        Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

        if (bitmap == null) {
            Toast.makeText(getApplicationContext(), "not taken",
                    Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(getApplicationContext(), "taken",
                    Toast.LENGTH_SHORT).show();
            Intent viewerIntent = new Intent("com.tyrone.mirrorapp.AFTERCAPTURE");
            viewerIntent.setClass(MainActivity.this, afterCapture.class);
            Bundle bitmapBundle = new Bundle();
            bitmapBundle.putByteArray("clickedBitmap", data);
            viewerIntent.putExtras(bitmapBundle);
            startActivityForResult(viewerIntent,0);
        }
        cameraObject.release();
    }

};

This is my ShowCamera.java class below

public class ShowCamera extends SurfaceView implements SurfaceHolder.Callback {

private SurfaceHolder holdMe;
   Camera theCamera;

public ShowCamera(Context context,Camera camera) {
      super(context);
      theCamera = camera;
      holdMe = getHolder();
      holdMe.addCallback(this);
   }

   @Override
   public void surfaceChanged(SurfaceHolder arg0, int arg1, int width, int height) {
       theCamera.setDisplayOrientation(90);//cz the fron cam doesn't adjust.
       theCamera.startPreview();
   }

   @Override
   public void surfaceCreated(SurfaceHolder holder) {
       try {
        theCamera.setPreviewDisplay(holder);
    } catch (IOException e) {
        e.printStackTrace();
    }
   }

   @Override
   public void surfaceDestroyed(SurfaceHolder holder) {
       theCamera.setPreviewCallback(null); 
       theCamera.stopPreview();
       theCamera.release();
       theCamera = null;
   }

}

My activity keeps force closing on destroy of the activity. Any Idea what the reason could be? P.S. : I'm not entirely sure it force closes onSurfaceDestroyed. Please correct me if I am wrong. Thank You

part of my log file

11-18 20:30:31.877: I/SurfaceView(21648): Callback --> surfaceCreated
11-18 20:30:31.877: I/SurfaceView(21648): surfaceCreated callback +
11-18 20:30:31.877: D/setting preview display(21648): getting Ready
11-18 20:30:31.879: D/AndroidRuntime(21648): Shutting down VM
11-18 20:30:31.879: W/dalvikvm(21648): threadid=1: thread exiting with uncaught exception (group=0x41a00c98)
11-18 20:30:31.879: W/dalvikvm(21648): threadid=1: uncaught exception occurred
11-18 20:30:31.879: W/System.err(21648): java.lang.RuntimeException: Method called after release()
11-18 20:30:31.880: W/System.err(21648):    at android.hardware.Camera.setPreviewDisplay(Native Method)
11-18 20:30:31.880: W/System.err(21648):    at android.hardware.Camera.setPreviewDisplay(Camera.java:580)
11-18 20:30:31.880: W/System.err(21648):    at com.tyrone.mirrorapp.ShowCamera.surfaceCreated(ShowCamera.java:66)
11-18 20:30:31.880: W/System.err(21648):    at android.view.SurfaceView.updateWindow(SurfaceView.java:662)
11-18 20:30:31.881: W/System.err(21648):    at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:256)
11-18 20:30:31.881: W/System.err(21648):    at com.tyrone.mirrorapp.ShowCamera.onWindowVisibilityChanged(ShowCamera.java:98)
11-18 20:30:31.881: W/System.err(21648):    at android.view.View.dispatchWindowVisibilityChanged(View.java:8096)
11-18 20:30:31.881: W/System.err(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881: W/System.err(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881: W/System.err(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881: W/System.err(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881: W/System.err(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.881: W/System.err(21648):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1448)
11-18 20:30:31.881: W/System.err(21648):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1192)
11-18 20:30:31.881: W/System.err(21648):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6231)
11-18 20:30:31.881: W/System.err(21648):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788)
11-18 20:30:31.882: W/System.err(21648):    at android.view.Choreographer.doCallbacks(Choreographer.java:591)
11-18 20:30:31.882: W/System.err(21648):    at android.view.Choreographer.doFrame(Choreographer.java:560)
11-18 20:30:31.882: W/System.err(21648):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774)
11-18 20:30:31.882: W/System.err(21648):    at android.os.Handler.handleCallback(Handler.java:808)
11-18 20:30:31.882: W/System.err(21648):    at android.os.Handler.dispatchMessage(Handler.java:103)
11-18 20:30:31.882: W/System.err(21648):    at android.os.Looper.loop(Looper.java:193)
11-18 20:30:31.882: W/System.err(21648):    at android.app.ActivityThread.main(ActivityThread.java:5292)
11-18 20:30:31.882: W/System.err(21648):    at java.lang.reflect.Method.invokeNative(Native Method)
11-18 20:30:31.882: W/System.err(21648):    at java.lang.reflect.Method.invoke(Method.java:515)
11-18 20:30:31.883: W/System.err(21648):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
11-18 20:30:31.883: W/System.err(21648):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
11-18 20:30:31.883: W/System.err(21648):    at dalvik.system.NativeStart.main(Native Method)
11-18 20:30:31.883: W/dalvikvm(21648): threadid=1: calling UncaughtExceptionHandler
11-18 20:30:31.885: E/AndroidRuntime(21648): FATAL EXCEPTION: main
11-18 20:30:31.885: E/AndroidRuntime(21648): Process: com.tyrone.mirrorapp, PID: 21648
11-18 20:30:31.885: E/AndroidRuntime(21648): java.lang.RuntimeException: Method called after release()
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.hardware.Camera.setPreviewDisplay(Native Method)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.hardware.Camera.setPreviewDisplay(Camera.java:580)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at com.tyrone.mirrorapp.ShowCamera.surfaceCreated(ShowCamera.java:66)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.SurfaceView.updateWindow(SurfaceView.java:662)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:256)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at com.tyrone.mirrorapp.ShowCamera.onWindowVisibilityChanged(ShowCamera.java:98)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.View.dispatchWindowVisibilityChanged(View.java:8096)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1110)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1448)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1192)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6231)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.Choreographer.doCallbacks(Choreographer.java:591)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.Choreographer.doFrame(Choreographer.java:560)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.os.Handler.handleCallback(Handler.java:808)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.os.Handler.dispatchMessage(Handler.java:103)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.os.Looper.loop(Looper.java:193)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at android.app.ActivityThread.main(ActivityThread.java:5292)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at java.lang.reflect.Method.invokeNative(Native Method)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at java.lang.reflect.Method.invoke(Method.java:515)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
11-18 20:30:31.885: E/AndroidRuntime(21648):    at dalvik.system.NativeStart.main(Native Method)

解决方案

Your log states that the exception happens onSurfaceCreated. theCamera object is released before this callback is invoked. Please check where you release camera in your app. Maybe, you release it after you pass frontCam to ShowCamera constructor in onCreate().

OK, as you explained, this happens when you return to MainActivity from another one. The common practice is to open camera in onResume(), and release in onPause(). It is also possible to open camera in ShowCamera.surfaceCreated(), and release (as in your code above) in ShowCamera.surfaceDestroyed().

It is recommended to open camera in a background thread, but this involves more delicate scheduling of call to Camera.setPreviewDisplay().

这篇关于我的相机活动不断强制关闭onSurfaceDestroyed的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆