У меня есть нестатический, приватный по частям метод в классе Activity, который я бы назвал внутри SurfaceView, например: surfaceChanged() или surfaceDestroyed().Как я могу вызвать метод private-private в Activity из SurfaceView?
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', но в коде нет упоминания об одном. Пожалуйста, будьте более конкретными. – Phil
Добавлен класс SurfaceView, с которого я пытаюсь вызвать метод в активности. Может ли передать действие в качестве параметра в перегруженном конструкторе? То, что я прошу, - это лучший способ вызова метода в классе Activity из класса SurfaceView. Извините за беспорядок :) – user2081718