我的 Activity 类中有一个非静态的包私有方法,我想在 SurfaceView 中调用它,例如:surfaceChanged() 或 surfaceDestroyed()。
public class MyActivity extends Activity {
Camera mCamera = Camera.open();
Camera.Parameters parameters = mCamera.getParameters();
boolean hasFlash = false;
...
void destroyCamera() {
flashOff();
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
void updateCamera() {
mCamera.setParameters(parameters);
mCamera.startPreview();
}
...
class CameraView extends SurfaceView implements SurfaceHolder.Callback {
...
public void surfaceDestroyed(SurfaceHolder holder) {
destroyCamera();
}
...
有一个更好的方法吗?我在同一个活动中也有一个 toggleFlash() 方法,因此我可以通过关键侦听器在活动中切换闪光灯。