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)
不显示屏幕闪烁。
希望这对您有所帮助,
我正在尝试制作一个非常基本的手电筒应用程序。当用户打开应用程序时,不会展开任何布局,手电筒只会打开。一旦用户第二次打开手电筒,手电筒就会关闭。似乎打开手电筒并不麻烦,但当应用程序第二次启动时将其关闭时,我有点不确定。我不太确定如何解决这个问题,任何帮助将不胜感激!
这是我目前的情况:
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)
不显示屏幕闪烁。
希望这对您有所帮助,