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 № 1Initialisieren Sie die Kamera nicht in onCreate. Führen Sie sie in onStart aus und lassen Sie sie in onStop los.