【发布时间】:2013-02-15 08:07:38
【问题描述】:
我的 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() 方法,因此我可以通过关键监听器在活动中切换闪光灯。
【问题讨论】:
-
您在问什么非常不清楚。你说
SurfaceView,但你的代码中没有提到一个。请更具体。 -
添加了我试图在活动中调用方法的 SurfaceView 类。可以将活动作为参数传递给重载的构造函数吗?我要问的是从 SurfaceView 类调用 Activity 类中的方法的最佳方法是什么。很抱歉造成混乱:)
标签: android methods android-activity surfaceview package-private