/ / Wie man ein Kameraobjekt neu initialisiert, nachdem es außerhalb von onCreate - android, camera freigegeben wurde

Wie man ein Kameraobjekt neu initialisiert nachdem es außerhalb von onCreate - android, camera veröffentlicht wurde

Ich benutze den Kamerablitz für einen Morse-CodeAnwendung. Ich erstelle ein neues Kameraobjekt, wenn die Klasse erstellt wird. Der Benutzer hat eine Taste, mit der er die Kamera zurücksetzen und bei Bedarf freigeben kann (wenn die Morse-Sequenz vorzeitig beendet werden soll).

Das Problem ist, dass wenn sie den Reset-Knopf drückenSchaltfläche, da die Aktivität nicht erstellt oder erneut geladen wird, wird die Kamera nie neu initialisiert - dies ist ein Problem, da die Methode der Klasse, die sie aufruft, von einer anderen Klasse verwendet wird und die Kamera freigibt, wenn sie ihre Funktion beendet hat Ich bin mir nicht sicher, wie ich den Code so strukturieren soll, dass ich dies tun kann.

Ich frage mich, ob jemand Ratschläge / Vorschläge hat, wie dies zu erreichen ist?

 //Camera object being declared
Light light;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity__morse);

//Camera object being initialized
light = new Light
}

//Reset   user pressed a button
public void reset(View view)
{
light.release();
}

//Releasing the camera
public void release() {

if(camera != null)
{
camera.stopPreview();
camera.release();
camera = null;
}
}

Antworten:

2 für die Antwort № 1

Initialisieren Sie die Kamera nicht in onCreate. Führen Sie sie in onStart aus und lassen Sie sie in onStop los.