Android 第二次启动 activity 时关闭闪光灯

Android turning off flash on second launch of activity

我正在尝试制作一个非常基本的手电筒应用程序。当用户打开应用程序时,不会展开任何布局,手电筒只会打开。一旦用户第二次打开手电筒,手电筒就会关闭。似乎打开手电筒并不麻烦,但当应用程序第二次启动时将其关闭时,我有点不确定。我不太确定如何解决这个问题,任何帮助将不胜感激!

这是我目前的情况:

package com.example.rifatrashid.lighter;

import android.app.Activity;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.os.Bundle;


public class MainActivity extends Activity {
private boolean haslight;
private Integer val = 0;
private Camera camera;
private Camera.Parameters parameters;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    haslight = getApplicationContext().getPackageManager().hasSystemFeature((PackageManager.FEATURE_CAMERA_FLASH));
    if(!haslight) {

    }
    camera = Camera.open();
    parameters = camera.getParameters();
    val++;
    if(val>1)
        val=0;
    switch (val){
        case 1:
            parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
            camera.setParameters(parameters);
            camera.startPreview();
            break;
        case 0:
            camera.stopPreview();
            camera.release();
            break;
    }
  }
}

看起来您已经使用 class 变量来切换灯光,所以看起来您所要做的就是将整个东西从 onCreate() 移动到 onResume()。但是,由于您没有 UI,整个事情可能无法正常运行。但是,请尝试一下。至少可以说,您应该实现一个透明的内容视图。

编辑:实现一个不起眼的UIwindow,只需要一个空白activity,然后使用finish() onResume() 方法中的关键字和 overridePendingTransition(0,0) 不显示屏幕闪烁。

希望这对您有所帮助,