J'ai créé une application PhoneGap 1.5 / Android.
Mon client signale que, lorsqu'il quitte l'application à l'aide du bouton Accueil, puis la relève à l'aide de l'icône de l'application, l'application relance du début au lieu de reprendre. Cependant, lorsqu'il détient le bouton HOME, l'application apparaît dans les applications récentes et lorsqu'il accède à l'application dans ce menu, l'application reprend la manière attendue. P>
Je pensais que cela pourrait être lié à la L'application étant automatiquement fermée par le système d'exploitation en raison d'un manque de mémoire, mais si c'était le cas, l'application ne devrait pas reprendre lorsque vous avez cliqué sur les applications récentes. P>
Je ne pouvais pas reproduire le bogue sur mon Sony Ericsson Xperia avec Android 2.3.4, le client a connu ce comportement sur une Motorola Defy et sur un autre téléphone (je vais ajouter la référence de l'autre téléphone et des versions du système d'exploitation dès que je les obtiens). P>
Le processus d'initialisation de l'application est déclaré de cette manière: p> pourrait être corrigé en attachant les processus à d'autres événements (bien que je doute, l'application semble vraiment être relancé dès le début)? p> existe une déclaration à faire dans le manifeste Android pour empêcher ce comportement? P> Voici la signature d'activité dans mon androidmanifest.xml p> < Pré> xxx p RE> est-ce un bug connu dans certains téléphones / versions Android? p>
5 Réponses :
Ceci est en fait par conception dans Android, où le système d'exploitation contrôle le cycle de vie de l'application. Vous pouvez Rechercher plus d'informations ici . P>
J'ai bien peur que cela ne réponde pas à ma question. Le système d'exploitation contrôle le cycle de vie de l'activité, mais l'application apparaît dans les "applications exécutives" et peut être reprise de là, cela signifie donc que l'activité n'a pas été tuée à cause d'un manque de mémoire. S'il n'a pas été tué, pourquoi cliquera-t-il sur l'icône de l'application le relance? Si cela est dans la documentation, pourriez-vous souligner le point qui traite de ce comportement parce que je ne peux pas le trouver.
hey lucas avez-vous: dans votre étiquette d'activité dans votre androidmanifest.xml. p> Comme vous avez dit que l'autre chose qui pourrait se produire est votre client Le téléphone fonctionne bas sur la mémoire et le système d'exploitation tue votre application pour libérer la mémoire. P> p>
Merci Simon, je viens d'ajouter cette partie de mon androidmanifest.xml dans la question. Comme indiqué dans la question, si le système d'exploitation avait tué l'application, cela ne devrait pas être en mesure de reprendre le menu "Applications récentes" ...
Avez-vous toujours le problème?
En fait, le client a finalement admis que cela lui faisait des erreurs dans la manipulation de son téléphone ... Donc je ne le sais pas et je ne saurai certainement jamais s'il y avait vraiment un bug ou non ...
@Simon: Je suis d'Android: configchange = "Orientation | KeyboardHidden | Screensize" dans mon étiquette d'activité, mais l'application toujours est redémarrée au lieu de simplement reprendre.
J'ai un Samsung Galaxy Note II et j'ai rencontré le même problème. Donc, j'ai modifié l'androidmanifest.xml et cela fonctionne maintenant sur Samsung et HTC Thunderbolt.
Voici les modifications: P>
<uses-feature android:name="android.hardware.camera" android:required="false"/> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/> <activity android:configChanges="orientation|keyboardHidden" />
Vous souhaitez ajouter ce qui suit à la balise d'activité de votre AndroidManifest.xml: de sorte qu'il devrait ressembler à ceci: p>
En réalité, si vous lisez les documents d'activité Android, l'utilisation singleask semble être découragée et définir Android: LaunchMode = "SingleTop" résout également le problème. Le problème décrit par le PO se produit toujours avec Cordova 3.3.0 avec des paramètres par défaut. Si Android: LaunchMode = "SingleTop" étaient les paramètres par défaut des nouveaux projets Cordova, je pense vraiment que cela pourrait sauver de nombreux maux de tête!
Essayez ... P>
Utilisez Android: LaunchMode = "SingleInstance" dans l'étiquette d'activité de votre fichier manifeste. P>
J'ai changé le titre pour être plus explicite
N'est-ce que la différence entre le démarrage de l'activité par défaut vs ouvrant une application (éventuellement du dernier point connu)? Si vous avez une "session" précédente, vous pouvez être dans une activité différente, alors que dans le menu, vous démarrez l'activité par défaut? En outre, je ne pense pas que vous voyiez "en cours d'exécution" en anime "Home '", vous devriez aller au TaskManager pour cela. La maison à long terme ne vous montre-t-elle pas simplement que vous «applications récemment utilisées», qu'ils courent toujours ou non?
C'est vrai, sur mon téléphone Longuppressioning 'Home' m'apporte les applications récentes. Mais pourquoi le lancement de ce menu restaurerait-il la "session" actuelle et ne pas être lancé à partir de l'icône? Comment puis-je empêcher l'icône de démarrer l'activité par défaut et de le faire reprendre la session en cours? Pourquoi le comportement serait-il différent sur mon téléphone et sur le téléphone de mon client? Merci...
Désolé, si je savais tout ça, je t'aurais donné une réponse :)