Voglio utilizzare android:configChanges="orientation|keyboardHidden"
per alcune delle mie attività in modo che il mio onCreate non venga richiamato di nuovo, ma ho pensato di vedere se qualcuno avesse prima una lista di pro e contro perché il this link dice che dovrebbe solo essere usato come ultima risorsaQuali sono i pro e i contro dell'uso di configChanges = "orientation" per i dispositivi Android?
risposta
Un grande Pro di utilizzare questo approccio è che richiede pochissimo sforzo da parte tua e che la tua app sopravviverà alle modifiche di configurazione senza ricorrere agli arresti anomali.
Lo svantaggio è che l'utilizzo di risorse specifiche di configurazione (per orientamento orizzontale o verticale) non viene applicato automaticamente.
Nella mia (forse piccola) esperienza, penso che non valga veramente la pena di fare tutto l'impianto idraulico.
La "corretta" gestione di queste modifiche di configurazione richiede un sacco di impianti idraulici da parte vostra e le cose diventano ancora più drammatiche se dovete supportare le finestre di dialogo di avanzamento durante le modifiche all'orientamento dello schermo.
Anche se molte persone optano per la correzione rapida cambiando il manifest e configurando la loro attività con Android: configChanges = "keyboardHidden | orientation", penso che sia importante rendersi conto che ci sono alternative a questo.
Richiede più codice, ma fornisce informazioni più dettagliate su come funziona il sistema generale.
E 'strano che Google in realtà non chiacchierare il ragionamento dietro di esso, ma ci sono in realtà tre principali motivi che mi vengono in mente per evitare di utilizzare questo approccio:
- Nella mia esperienza, alcuni tipi di vista (in particolare WebViews e MapViews su Android 2.1 o precedenti) possono comportarsi in modo piuttosto strano dopo il cambio di orientamento se non sono stati ricreati (ad esempio, i pulsanti dello zoom sono errati).
- Impedisce l'utilizzo di layout specifici dell'orientamento (vedere la vista orizzontale della nuova app di Market, ad esempio).
- Può impedirti di scoprire comportamenti buggy dalla tua applicazione relativi ad altri tipi di motivi per cui l'attività potrebbe essere distrutta e ricreata (ad esempio memoria insufficiente o altre uccisioni normali durante lo sfondo). Cioè, se la tua attività può gestire con garbo un riavvio a causa della rotazione, probabilmente può gestire un riavvio a causa dell'abbattimento dello sfondo. Se si ignora la gestione della rotazione, tuttavia, non si può verificare un riavvio a causa dell'abbattimento dello sfondo durante i normali test fino a quando un utente con un vecchio telefono con memoria insufficiente scrive con una segnalazione di errore.
L'ultimo motivo è il grande; specialmente con i vecchi telefoni a bassa RAM e con i comportamenti di autokilling presumibilmente più aggressivi in Gingerbread, le tue attività devono sapere come essere ricreate rapidamente dopo una distruzione, salvando il loro stato, indipendentemente dalla gestione dell'orientamento. E una volta che le tue attività sono in grado di gestire questo tipo di distruzione/ricreazione, probabilmente sei pronto a far sì che il cambio di rotazione uccida comunque. Puoi guadagnare un po 'di velocità assorbendo l'evento di rotazione (dato che non devi tornare indietro con l'inflazione del layout e tutto il resto) ma a quel punto è tutto.
Se si decide di ingoiare rotazioni mi raccomando sempre utilizzando un emulatore o un dispositivo con l'opzione 's 'distruggere immediatamente le attività' del Development.apk controllato, e poi fare in modo che il passaggio app o il backup tramite il vostro stack compito ancora funziona correttamente.
Nella mia esperienza l'assorbimento delle rotazioni può essere una buona scelta per un'esperienza utente migliorata, in particolare su attività con layout complessi che potrebbero richiedere alcuni minuti per essere ricreati, ma è davvero necessario testare attentamente ed efficacemente assicurarsi che la propria attività funziona ancora anche senza ignorare la rotazione.
- 1. Quali sono i pro e i contro dell'uso di Global.asax?
- 2. Quali sono i pro e i contro di un TreeSet
- 3. Quali sono i pro e i contro di Anchor Modeling?
- 4. Quali sono i tipi di modelli utilizzati, pro e contro?
- 5. Quali sono i pro e i contro di entrambi Jade e EJS per il modello Node.js?
- 6. android: configChanges = "orientation" non funziona con i frammenti
- 7. Quali sono i pro e i contro di lasciare a Google l'hosting di jQuery per me?
- 8. Per ARC o non per ARC? Quali sono i pro e i contro?
- 9. Quali sono i pro e i contro di asset_packager e Jammit?
- 10. Quali sono i pro e i contro del parametro --svn-branches per svn2git
- 11. Quali sono i pro e i contro dell'input delimitato generale di Ruby? (percentuale di sintassi)
- 12. Quali sono i pro e i contro dell'uso di variabili di trasmissione in un singleton?
- 13. WPF - MVVM - Quali sono i pro e i contro delle varie tecniche di creazione di viste?
- 14. Quali sono i pro e i contro dell'uso di un motore di template come Jade?
- 15. Quali sono i pro e i contro dell'utilizzo di uno o più DbContext con EF?
- 16. Quali sono i pro e i contro dell'utilizzo di un'e-mail come nome utente?
- 17. Quali sono i pro e i contro di DynamoDB rispetto ad altri database NoSQL?
- 18. Quali sono i pro e i contro di LinkedHashMaps rispetto a LinkedHashSet?
- 19. Quali sono le situazioni o i pro e i contro dell'uso di C++/CLI su C#
- 20. Quali sono i pro e i contro di rspec mocking rispetto ad altri framework beffardi?
- 21. Quali sono i pro e i contro di RemObjects PascalScript rispetto allo script DWS?
- 22. Quali sono i pro e i contro dell'uso di una flag enum?
- 23. Quali sono i pro e i contro dell'uso di GenericForeignKey rispetto all'ereditarietà multipla rispetto a OneToOneField?
- 24. Quali sono i pro e i contro delle procedure di chiamata in VB.NET?
- 25. Quali sono i pro e i contro di HTML5 Canvas vs. SVG + Raphael.js?
- 26. Quali sono i pro e i contro di git-flow vs github-flow?
- 27. Quali sono i pro e i contro del linguaggio di programmazione Icon?
- 28. Pro e contro dell'utilizzo di SVG per i giochi Android
- 29. Quali sono i pro e i contro dell'utilizzo dei componenti di progettazione di Visual Studio per i dati
- 30. Quali sono i pro e i contro dell'utilizzo dell'elenco manuale iterazione vs ricorsione tramite fail
Informazioni su WebView, è problematico perché se si cambia orientamento mentre viene caricato, si riavvia il caricamento. Come ho letto, non è possibile ripristinare il suo stato (ed è anche scritto nei documenti) –