android: la Poignée de Crash de l'Application et de commencer une Activité particulière
J'ai une appli et si l'application se bloque dans une activité particulière, il redémarre à l'un des intermédiaires parent activités.
C'est un problème pour moi puisque j'ai quelques entré les infos de l'utilisateur qui est perdu au moment de l'accident.
Est-il un moyen de forcer l'application à lancer à partir de l'écran après le redémarrage à partir d'un crash?
Grâce.
Avez-vous essayé d'omettre le android.l'intention.de la catégorie.Catégorie par DÉFAUT de cette Activité particulière? C'est probablement ce qui ne fonctionne que si vous ne voulez pas lancer l'activité avec les intentions.
ce n'est pas aider. Android Standard de comportement est de redémarrer l'application à l'Activité avant celui qui s'est écrasé. Cela n'a rien à voir avec manifeste paramètres et vous ne pouvez pas modifier ce comportement.
Fixer votre application de sorte qu'il ne tombe pas en panne. Intercepter des exceptions en cas de besoin et de faire quelque chose d'intelligent. Il n'existe aucune solution de contournement pour le code qui n'est pas robuste, à l'exception de rendre votre code plus robuste.
vous avez raison. Toutefois, vous ne serez jamais à écrire des applications qui ne plantent jamais. Ainsi, au lieu et si c'est vraiment nécessaire, vous pouvez également essayer une coutume UncaughtExceptionHandler et redémarrez votre activité à partir de là. Cela doit être fait avec soin, comme une erreur dans cette activité est susceptible de causer une boucle infinie.
ce n'est pas aider. Android Standard de comportement est de redémarrer l'application à l'Activité avant celui qui s'est écrasé. Cela n'a rien à voir avec manifeste paramètres et vous ne pouvez pas modifier ce comportement.
Fixer votre application de sorte qu'il ne tombe pas en panne. Intercepter des exceptions en cas de besoin et de faire quelque chose d'intelligent. Il n'existe aucune solution de contournement pour le code qui n'est pas robuste, à l'exception de rendre votre code plus robuste.
vous avez raison. Toutefois, vous ne serez jamais à écrire des applications qui ne plantent jamais. Ainsi, au lieu et si c'est vraiment nécessaire, vous pouvez également essayer une coutume UncaughtExceptionHandler et redémarrez votre activité à partir de là. Cela doit être fait avec soin, comme une erreur dans cette activité est susceptible de causer une boucle infinie.
OriginalL'auteur Wise Shepherd | 2015-01-07
Vous devez vous connecter pour publier un commentaire.
Solution Proposée 1 -
Ajouter cette balise
android:clearTaskOnLaunch="true"
dans le manifest.xml fichier sur votre activité principale, qui doit toujours lancer.Raison Probable pour laquelle il n'a pas de travail
Lorsque l'application se bloque, il jette un
Exception
et nous avons besoin pour gérer leException
et sinon, on ne serait pas d'obtenir le comportement attenduSolution Proposée 2
D'essayer de traiter toute Exception non interceptée et informer le système que faire. Pour ce faire, essayez les étapes ci-dessous.
Application
ClasseuncaughtException
dans votreApplication
sous-classe.Activity
, appelez votreApplication
classe.Activity
(selon vos besoins).Exemple De Code
L'étape 1 et 2
Étape 3
Étape 4
Modifier la méthode ci-dessous selon votre condition
Essayez ma mise à jour de réponse
Vous NE pouvez pas démarrer une Activité à l'intérieur d'un uncaught ex parce que votre thread principal a été arrêté!
OriginalL'auteur Prem
Je vous conseille d'utiliser la bibliothèque comme
https://github.com/Ereza/CustomActivityOnCrash
Que la bibliothèque prend soin d'autres choses avec les différentes versions d'android.
OriginalL'auteur Pradeep Kumar Kushwaha
Peut-être il n'y a pas moyen de le faire, mais vous pouvez le signaler afin de savoir si l'activité a commencé par action de l'utilisateur ou si elle a juste commencé après un crash.
je.e lorsque vous démarrez l'activité parent, passer quelque chose dans le startActivity intention. Si ce n'est pas là, alors il a commencé après le crash.
OriginalL'auteur imorsi
J'ai réussi à démarrer mon activité principale avec
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
comme ceci:OriginalL'auteur Adrian
d'abord créer et définir la
App
classe dans votreAndroidManifest.xml
etensuite, mettez ce code dans la classe App
Journal De Débogage De L'Écran De Tirer
OriginalL'auteur Hakim Douib