【问题标题】:Android turning off flash on second launch of activityAndroid 在第二次启动活动时关闭闪光灯
【发布时间】:2015-04-12 02:54:12
【问题描述】:

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

这是我目前所拥有的:

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

【问题讨论】:

  • 不是您问题的答案,但您应该始终为任何应用程序提供 UI - 您的设计存在缺陷。
  • 为什么不使用共享偏好来存储和检查价值

标签: java android flashlight


【解决方案1】:

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

编辑:实现一个不显眼的 UI 窗口,只有一个空白 Activity,并在 onResume() 方法中使用 finish() 关键字和 overridePendingTransition(0,0) 以不显示屏幕闪烁。

希望这会有所帮助,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    相关资源
    最近更新 更多