Ich habe einen RecyclerView-Adapter mit vielen verschiedenen ViewHoldern. Einer der ViewHolder enthält ein ImageView, das in der Lage sein muss, ein Bild aufzunehmen, seine Größe zu ändern und es dann anzuzeigen. Für die Modularität möchte ich, dass der ViewHolder in sich geschlossen ist: Er und nicht die Elternaktivität sollte alles behandeln, was den Fotoaufnahme- und -anzeigeprozess betrifft. Auch der Dateipfad ist konstant (wird sich nie ändern). Tatsächlich ist es /storage/emulated/0/com.company.app/myst/cat.jpg
. Als Ergebnis hier ist meine Implementierung der ImageView onClick
-Methode.
Wenn resizeResaveAndDisplayPhoto
aufgerufen wird, wird die folgende AsyncTask
Sie werden feststellen, dass ich die Ausrichtung vor der Aufnahme gesperrt habe und die Kamera 10 Sekunden nach dem Anzeigen des Fotos entsperrt habe. Dieser Trick ist Teil meiner Fehlersuche. Also hier ist die Situation. Das oben beschriebene System funktioniert sehr gut. Im folgenden Fall treten Probleme auf.
Wenn das Gerät gedreht wird, wird die laufende Aktivität sowie die damit verbundene asyncTask neu erstellt, was wahrscheinlich zu einem Leck führt.
Sie müssen wahrscheinlich die asyncTask innerhalb eines Service statt in einer Aktivität aufrufen, damit die asyncTask an den Lebenszyklus des Service angefügt wird.
Tags und Links android android-asynctask camera filesystems