Wann wird die "Verbraucherseite" einer TextureView geschlossen?
Eine der offiziellen Google-Beispiele für die Camera2-API leidet andas GleicheBufferQueue has been abandoned
Proble wie zu sehen in:
Speziell ruft die Beispiel-App ein @ acloseCamera()
Methode vononPause()
eines Fragments, wobeicloseCamera()
Anrufeclose()
auf derCameraCaptureSession
, dannclose()
auf derCameraDevice
, dannclose()
auf derImageReader
(wird für die eigentliche Aufnahme verwendet). Nach demclose()
aufCameraDevice
ist, wenn ein paar Vorkommen der oben genanntenBufferQueue has been abandoned
ie Meldung @ wird in LogCat angezeigt, obwohl die Meldung nur auf einigen Android 5.1-Geräten (Nexus 4 und Nexus 7 2013) und nicht auf anderen (Nexus 5 und Nexus 6) angezeigt wird.
Faddens Kommentar dazu war:
Wenn die Verbraucherseite vor der Eingabe von onPause () heruntergefahren wird, werden die Nachrichten erwartet.
Wann wirdTextureView
ie "Verbraucherseite" von @ wird geschlossen, und warum dann?
Googles Beispielcode unternimmt nicht aktiv etwas, um das @ herunterzufahreTextureView
das kann ich sehen. Und seit demTextureView
könnte im pausenzustand noch sichtbar sein, ich hätte erwartet, dass die "konsumentenseite" zum zeitpunkt von @ nicht betroffen wäonPause()
, aber vielleicht später inonStop()
.
Während ich feststelle, dass diese Nachricht (obwohl sie ein Fehler ist) harmlos ist, versuche ich herauszufinden, wie ich sie loswerden kann, und zwar aus keinem anderen Grund, als um zu verhindern, dass ich immer wieder gefragt werde, warum mein Code protokolliert dieser Fehler. Ich hoffe, dass ich, wenn ich mehr über diese "Verbraucherseite" verstehe, herausfinden kann, wie ich die Dinge besser aufräumen kann, wenn der Benutzer eine Camera2-using-Aktivität oder ein Fragment beendet und diesen Fehler vermeidet.