verbindet Ich entwickle eine App, die ein OTG-USB-Gerät verwendet.Aktivität onCreate() aufgerufen, wenn OTG-Gerät
Das Gerät, das ich verwende, ist ein USB-Barcodescanner, der von Android als Tastatur erkannt wird.
Aber ich entdeckte, dass jedes Mal, wenn ich das OTG-Gerät einstecke oder abziehe, die App durch Aufrufen der Activity onCreate() -Methode neu gestartet wird.
Das verursacht mir eine Menge Probleme, weil ich nicht erkennen kann, warum die onCreate() -Methode aufgerufen wird.
Gibt es irgendeine Absicht oder irgendetwas, das gefeuert werden könnte und eingefangen werden könnte, wenn das Otg-Gerät eingesteckt/ausgesteckt ist?
Vielen Dank im Voraus.
Vielen Dank Mike, ich habe die Links überprüft, die Sie mir vorgeschlagen haben. Ich werde versuchen, die Zustände wiederherzustellen, wenn die configChanges auftreten. Aber ich habe eine dumme Frage. Also konnte ich alle meine Variablen auf ein Headless-Fragment mit setRetainInstance (true) setzen und natürlich konnte ich es wiederherstellen, wenn ongfigChange auftritt. Aber bevor Fragmente existierten, wie zur Hölle konnten Sie Variablen wiederherstellen. – Herman
Sie müssen keine Fragmente verwenden, wenn Ihre Variablen Parcelable sind. Wenn dies der Fall ist, können Sie 'onSaveInstanceState' überschreiben, speichern Sie Ihre Variablen dort im Bundle und stellen Sie sie später mit dem Bundle wieder her, das an Ihren' onCreate' übergeben wurde (siehe [this] (http://developer.android.com/training/basics/activity) -lifecycle/recating.html). – Mike
@Herman, Wenn Ihre Variablen nicht durch das Bundle gespeichert werden können (zB 'Socket', 'Thread' oder' AsyncTask's), dann sind Fragmente der richtige Weg. Vor Fragmenten könnten Leute das veraltete 'onRetainNonConfigurationInstance()' verwenden. siehe [dies] (http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html). – Mike