将android Camera对象从一个活动传递到另一个活动

时间:2014-03-15 15:26:03

标签: android android-camera

在Android手电筒应用程序中,我在第一项活动中使用相机:

    Camera camera;
    //later in the code..
    camera = Camera.open();

和手电筒的第二个活动,是使用相机的闪光灯:

    Camera cam;
    cam = Camera.open();

由于前一个活动正在使用相机,因此无法使用频闪灯。我想将第一个活动中的相机传递给第二个活动,以便在应用程序中只有一个相机对象。

我尝试实现Serializable但它无法传递相机对象

知道怎么做吗?还是有更好的方法

1 个答案:

答案 0 :(得分:0)

单身模式可以正常使用:

public class StaticCamera{
private StaticCamera instance;
public static synchronized StaticCamera getInstance(){

if(instance == null){
instance = new StaticCamera();
}
return instance;
}
private Camera mCamera;
private StaticCamera(){
mCamera = Camera.open();
}

}

为mCamera字段添加getter方法,只需调用StaticCamera.getInstance().getCamera()

即可获得所需的一切

非常重要 - 你应该写下发布方法,如:

public static void dispose(){
instance == null;
}

只是为了让垃圾收集器在不再需要时收集对象(当然你需要手动调用它)。

<强>更新

我展示了如何将对象引用从一个传递到另一个活动。你的问题是你试图在活动之间打开和关闭灯光。如果只有闪光灯只有一个活动并使用片段来切换UI,那么最好的选择。