Im new to android. Ho scritto un paio di programmi e li ho provati sul mio telefono. Quando cambio orientamento, il mio telefono riavvia il programma. Tutte le mie variabili vengono ripristinate. In effetti, l'unica cosa che non si resetta è il testo che si trova nelle viste del testo di modifica. Che cosa causa questo? Come posso fermarlo? Ho provato a cercarlo su google e su overflow dello stack, ma tutto quello che sto vedendo è come l'orientamento della vista dal cambiare tutti insieme. Ho anche provato, in un programma, a impostare le mie variabili con il metodo get text, ma questo non funziona.Perdita di variabili degli orientamenti di commutazione
risposta
Quando si cambia orientamento come il mio telefono riavvia il programma.
Bene per essere precisi, il Activity
attualmente visibile è completamente distrutto e ricreato. Altri componenti della tua "applicazione" potrebbero non essere interessati.
Quali sono le cause? Come posso fermarlo?
È di progettazione e come per fermarlo, si può o non si vuole farlo.
Come è stato menzionato, è possibile specificare che si desidera gestire le modifiche di "configurazione" (come l'orientamento) o addirittura forzarne solo una (ad esempio, orizzontale o verticale).
In molti casi, tuttavia, uno sviluppatore di app può scegliere di modificare un layout in base al fatto che un dispositivo sia in un orientamento o in un altro. Alcuni layout possono funzionare bene in verticale ma non in orizzontale (o viceversa) e lo scopo dell'approccio progettato (distruggere/ricreare l'attuale visibile Activity
) è pensato per adattarlo.
Se uno sviluppatore sceglie di non gestire le modifiche di configurazione o impone uno specifico orientamento, il modo corretto di gestire le cose è assicurarsi che tutti i dati inseriti negli elementi dell'interfaccia utente "volatili" (come EditTexts) siano correttamente salvati e ricreati dopo il cambio di orientamento.
Per fare ciò, la comprensione del ciclo di vita Activity
è essenziale poiché si utilizzano i vari metodi Activity
richiamati durante tutto il ciclo di vita per salvare/ripristinare i dati.
Leggere essenziali ...
Grazie per la bella risposta completa e le condizioni! Rende completo dal momento che il motivo. Devo essere onesto però. Mi perdo leggendo le pagine degli sviluppatori e non capisco la maggior parte di ciò che stanno dicendo, a meno che non abbia una buona conoscenza di base e comprensione in anticipo. Imparo meglio da esempi ed esercitazioni. AND OF COURSE giocando con i metodi. – JBreezy901
@ JBreezy901: capisco esattamente cosa intendi per le pagine degli sviluppatori. Ero nello stesso posto 16 mesi fa, quando ho iniziato per la prima volta con Android e anche ora probabilmente ho lavorato solo su una piccola percentuale di ciò che è lì (e solo le cose di cui ho avuto bisogno fino ad ora). La documentazione di Application Fundamentals insieme a quella dell'attività e del suo ciclo di vita meritano sicuramente di essere segnalati. Sono contento di aver fatto un po 'di luce, di divertirmi. – Squonk
Questo è design, onCreate
verrà chiamato quando si modifica l'orientamento. Se ciò non è desiderato, è possibile impostarlo in modo che non risponda alle modifiche di orientamento in AndroidManifest.xml
, pertanto l'attività non verrà ricreata, l'impostazione di android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden"
per la propria attività la limiterà alla modalità verticale.
Per ulteriori informazioni sulle impostazioni, vedere this.
assicurati di implementare onSaveInstanceState
e preparati a ripristinare la tua attività da un Bundle
in onCreate
e sarai tutto pronto. questi saranno chiamati durante la rotazione, quindi avrai una nuova attività in seguito, ma se hai salvato il tuo stato e puoi ripristinarlo, niente di cui preoccuparsi.
Voglio ancora che il mio programma riprenda il suo layout quando si passa da un ritratto e paesaggio. Tutto ciò che voglio essere salvato sono le mie variabili. Soprattutto. Funzionerà? – JBreezy901
sì, se metti tutte le tue variabili in quel pacchetto, e poi nel tuo metodo 'onCreate' recuperale dal bundle invece di inizializzare la tua attività da zero, sarai tutto pronto. – dldnh
See this answer: cercare la risposta di Robert. Questo è esattamente quello che devi fare.
[permalink] (http://stackoverflow.com/a/4101501/1318194) – stackunderflow
Meglio aggiungere android:configChanges="keyboardHidden|orientation|screenSize" to
AndroidManifest.xml in
attività
- 1. iOS 8.3 arresti degli orientamenti supportati
- 2. Pulsante di commutazione multistato
- 3. Errore di dipendenza Xcode Target dopo la commutazione degli SDK
- 4. Perdita di attività durante l'utilizzo degli ascoltatori di pallavolo
- 5. Perdita di memoria durante l'utilizzo degli annunci interstitial di Admob
- 6. Pulsante di commutazione AngularJS
- 7. PHP - stato di commutazione
- 8. Modifica stato di commutazione Android
- 9. Esempio di istruzioni di commutazione
- 10. Perché inizializzazione di più variabili che portano alla perdita dell'oscilloscopio?
- 11. Raggruppamento pulsanti di commutazione Silverlight
- 12. JQuery - reset stato di commutazione
- 13. Commutazione di stack in C++
- 14. Pulsante di commutazione nel cassetto di navigazione
- 15. Chiamata di sistema senza commutazione di contesto?
- 16. WriteableBitmap Perdita di memoria?
- 17. Desidero utilizzare pennini multiplo per diversi orientamenti di interfaccia iphone
- 18. Modifica la dimensione di UICollectionViewCell su diversi orientamenti del dispositivo
- 19. Perdita di memoria Microsoft.Web.Administration
- 20. È una cattiva pratica avere un caso di commutazione in un caso di commutazione?
- 21. jqGrid barra degli strumenti del filtro di commutazione con la colonna congelato non funziona
- 22. perdita di memoria in GMSMapView
- 23. Perdita di memoria di chiusura JavaScript
- 24. Orientamenti della maniglia in Windows 8
- 25. Perdita di memoria CheckedListBox
- 26. Perdita di memoria GETIPFROMHOST
- 27. Possibile perdita di frazione
- 28. Perdita di memoria TTaskBar
- 29. getaddrinfo Perdita di memoria
- 30. Quarzo: perdita di memoria?
Vedere la mia risposta qui http://stackoverflow.com/questions/6764086/setting-the -background-of-an-activity –