91 votes

L'application redémarre complètement lorsqu'elle est lancée par une pression sur l'icône dans le lanceur.

Je suis en train d'essayer de créer une version de ma première application Android pour l'envoyer à quelques testeurs. Cependant, j'ai rencontré un problème. Lorsque vous quittez l'application et que vous y revenez en la lançant via son icône, elle redémarre toute l'application au lieu de retourner à son emplacement précédent. Cela se produit même si vous ré-entrez juste après avoir quitté l'application. En revanche, cela ne se produit pas si je maintiens le bouton Home enfoncé et que je lance l'application via la liste des applications récentes.

J'ai cherché en ligne d'autres personnes ayant ce problème et il y en a quelques-unes, mais personne n'a jamais eu de réponse solide quant à la raison pour laquelle cela leur arrive. Il a été suggéré dans d'anciennes questions de définir le mode de lancement à singletask ou singleinstance dans le fichier manifeste, mais cela ne m'a pas aidé, et d'ailleurs - de ce que je comprends, le comportement par défaut d'Android est de revenir à l'état précédent de la tâche dans cette situation, donc je ne sais pas pourquoi j'aurais besoin d'options spéciales du manifeste pour le faire faire.

Le plus bizarre dans ce problème est que si j'utilise eclipse et le débogueur pour mettre l'application sur mon téléphone, ce problème ne se produit pas. Je n'ai même pas besoin d'être connecté au debugger, il semble que tant que j'ai une version debug de l'application, le problème ne se produit pas. Mais si j'utilise une version release (je la crée en utilisant l'option de menu Android Tools - Export Signed Application Package dans Eclipse), le problème se produit. Si quelqu'un a une idée de la cause de ce problème, je serais ravi d'entendre votre avis.

0voto

Alberto M Points 150

Toutes les solutions ci-dessus n'ont pas fonctionné de manière cohérente sur tous mes appareils. Elles ont fonctionné sur certains Samsung mais pas sur tous.

La cause du problème pour moi était l'installation manuelle de l'APK.

0voto

adSad Points 587

Pour moi, la solution était d'ajouter LaunchMode = LaunchMode.SingleTop à mon attribut d'activité sur l'activité principale :

/// <summary>
    /// The main activity of the application.
    /// </summary>
    [Activity(Label = "SilhuettePhone",
        Icon = "@drawable/icon",
        Theme = "@style/MainTheme",
        MainLauncher = true,
        ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation,
        ScreenOrientation = ScreenOrientation.Portrait,
        LaunchMode = LaunchMode.SingleTop,
        WindowSoftInputMode = SoftInput.AdjustResize)]

0voto

user12927542 Points 51

J'ai eu un problème avec une application qui redémarre, mon problème était dans les thèmes : J'ai différents fragments et je voulais avoir un seul fond pour tous. Mais cela provoque un redémarrage de l'application sur certains appareils(.

J'ai supprimé cette ligne dans les thèmes et cela m'a aidé :

item name = "Android:windowBackground">@drawable/background /item

0voto

Prakhar1001 Points 845

La suppression de l'affinité des tâches plutôt que du mode de lancement a fonctionné quelque peu, mais elle a ses propres inconvénients.

-1voto

Zoltán Points 2915

Quand vous appuyez sur le bouton retour dans Android, le onDestroy est invoquée (par opposition à l'appui sur le bouton d'accueil, où seule la méthode onPause() est invoquée).

Si vous avez besoin que votre application continue là où elle s'est arrêtée, sauvegardez l'état de l'application dans le fichier onDestroy() et de charger cet état dans la méthode onCreate() méthode.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X