在Android手电筒应用程序中,我在第一项活动中使用相机:
Camera camera;
//later in the code..
camera = Camera.open();
和手电筒的第二个活动,是使用相机的闪光灯:
Camera cam;
cam = Camera.open();
由于前一个活动正在使用相机,因此无法使用频闪灯。我想将第一个活动中的相机传递给第二个活动,以便在应用程序中只有一个相机对象。
我尝试实现Serializable但它无法传递相机对象
知道怎么做吗?还是有更好的方法
答案 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,那么最好的选择。