Android 改变方向时,闪光灯关闭

Android 改变方向时,闪光灯关闭,android,camera,Android,Camera,我已经创建了一个android应用程序,它允许用户通过按下按钮打开和关闭闪光灯。如果用户打开闪光灯并改变方向,则指示灯将关闭。为什么会发生这种情况。请看下面我使用的代码 cam = Camera.open(); final Parameters p = cam.getParameters(); torch_switch = (Button)findViewById(R.id.torch_switch); torch_switch.setOnClickListener(n

我已经创建了一个android应用程序,它允许用户通过按下按钮打开和关闭闪光灯。如果用户打开闪光灯并改变方向,则指示灯将关闭。为什么会发生这种情况。请看下面我使用的代码

cam = Camera.open();
    final Parameters p = cam.getParameters();

    torch_switch = (Button)findViewById(R.id.torch_switch);
    torch_switch.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {


            // TODO Auto-generated method stub
            if(isLightOn) {
                torch_switch.setText("Switch ON Torch");
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                cam.setParameters(p);
                cam.stopPreview();
                isLightOn = false;

            } else {
                torch_switch.setText("Switch OFF Torch");
                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                cam.setParameters(p);
                cam.startPreview();
                isLightOn = true;
            }
        }
    });

更改方向会导致应用程序销毁其当前活动,然后重新创建,本质上是从一开始就重新启动应用程序


您可以通过禁止清单中的方向更改来修复它,或者将当前模式存储在“onStop”方法中,然后在“OnStart”中恢复它(可能)

最简单的解决方法是确定方向,将以下内容添加到清单中

<activity android:name=".abc" android:screenOrientation="portrait" />


这样,即使你的应用被旋转,方向也不会改变。如果您计划处理方向更改,那么请使用Sean O'Toole的解决方案

更改方向调用onCreate方法,也许这是相关的?