Comment empêcher l'actualisation automatique de WebView lors de la rotation de l'écran
Mon application-activité avec WebView était l'actualisation automatique lors de la rotation de l'écran et mon activité à la première 1.
Exemple: WebView gère l'activité 3(A, B, C) lorsque je passe de A- > B ou B-C, il reviendra à A Lorsque l'écran tourne.
Ma question: Comment Pouvons-nous garder l'activité vivante rotation de l'écran des événements?
3 réponses
En mettant en évidence le commentaire @ kirgy, vous devez ajouter orientation|screenSize
à votre manifeste si votre API > 3.2, cela ne fonctionnera pas sans cela dans certains cas.
Il y a plus d'une approche pour s'attaquer à ce problème.
Le chemin Le plus facile est d'ajouter android:configChanges="orientation|screenSize"
à la Activity
dans votre manifeste. En définissant ce drapeau, vous dites à Android de ne pas détruire le Activity
et que vous allez gérer vous-même tous les changements d'orientation (le cas échéant).
L'approche la plus moderne serait de placer le WebView
dans un Fragment
et de le faire conserver son instance, en utilisant le drapeau setRetainInstance(true)
. L'hébergement Activity
sera toujours détruit lors de l'orientation change, mais le Fragment
contenant le {[3] } sera simplement détaché et re-attaché, sans avoir besoin de se recréer. Vous pouvez trouver un exemple de cette fonctionnalité dans les démos de L'API. Gardez à l'esprit que la bibliothèque de support offre une implémentation de fragments compatible pré-Honeycomb, alors ne vous laissez pas berner par le niveau API de la classe 'regular' Fragment
.
Ajoutez android:configChanges="orientation"
à votre fichier manifeste pour empêcher les redémarrages lorsque l'orientation de l'écran change.
Comme::
<activity android:name=".MyActivity"
android:configChanges="orientation|screenSize"
android:label="@string/app_name">
Voir ce pour certaines références.