Android在第二次启动活动时关闭了闪存

时间:2015-04-12 02:54:13

标签: java android flashlight

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

到目前为止我所拥有的:

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;
    }
  }
}

1 个答案:

答案 0 :(得分:3)

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

修改以实现不可用的UI窗口,只有一个空白活动,并使用finish()方法和onResume()中的overridePendingTransition(0,0)关键字显示一个屏幕闪烁。

希望这有帮助,