Comment résilier un Xamarin application?
Comment puis-je résilier un Xamarin application à partir de l'une des activités?
J'ai essayé les deux System.Environment.Exit(0)
et du Système.De l'environnement.Exit(1) ainsi que Finish()
et de tuer toutes les activités.
Il encore ouvre une page vierge par défaut nom d'activité et un écran noir.
Est-il une solution spécifique pour cela?
- Pour info, Apple déconseille fortement de terminaison d'applications. Source: developer.apple.com/library/ios/qa/qa1561/_index.html
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez Xamarin.Les formes de créer une Dépendance de Service.
Interface
Android : à l'Aide de
FinishAffinity()
de ne pas redémarrer votre activité. Il sera tout simplement fermer l'application.IOS : Comme l'a déjà suggéré ci-dessus.
UWP
Utilisation dans Xamarin Forms
Pour Android, vous pouvez le faire
iOS explicitement ne pas fournir une API pour les une Appli. Seul le système d'exploitation peut fermer une Application.
Pour iOS, vous pouvez utiliser ce code:
Pour Android, comme @Jason mentionné ici:
Une façon simple de le faire fonctionner de la croix-plate-forme est par cette commande:
L'ai eu à partir ce lien.
EDIT: Après l'avoir utilisé pendant un certain temps, j'ai découvert que
.CloseMainWindow()
ne tuez pas l'application, seule la Ferme (eh bien, c'est évident). Si vous voulez mettre fin à l'application (tuer), vous devriez utiliser les éléments suivants:Dans votre activité, utilisez ce code
Un simple tout-en-un de la combinaison de la réponse à la question précédente, au lieu de l'interface/la dépendance:
J'ai essayé ce code
Dans ce, iOS et Android, l'application fermer lorsqu'un utilisateur choisit de mettre fin à l'application. Peut-être que cela vous aide.
Que votre question initiale mentionne activités, votre question est spécifiquement pour Android, vous devriez probablement mettre à jour la question du titre avec cela à l'esprit pour éviter les gens qui recherchent une solution multi-plateforme de venir ici.
Pour iOS et Android (par exemple en Xamarin Forms) il vous suffit de lancer une exception, qui, tout en étant la "main lourde" approche, va faire le travail:
Que ce n'est pas la meilleure expérience utilisateur et que vous ne voulez l'utiliser pour iOS parce que sur Android, vous êtes susceptible d'obtenir un système pop-up vous parler de l'application s'est écrasé. Cependant, contrairement à d'autres iOS méthodes à appeler exit(0) ou en appelant le privé iOS méthodes comme "terminateWithSuccess" via un sélecteur, il ne devrait pas échouer app store validation purement basé sur la façon dont vous le faites. Ils peuvent toujours ne pas vous parce que votre application tente de mettre fin lui-même.
Vous pouvez mettre en œuvre quelque chose de différent spécifiquement pour Android, dans lequel cas de Jason réponse est suffisante, de nouveau, si ce n'est un peu sur le nez, c'est à dire en utilisant cette approche ne peut pas permettre à votre application de nettoyer lui-même:
De toute façon, vous devez vraiment vous demander pourquoi vous devez fournir cette option. Contrairement aux applications de bureau où la fermeture d'une application n'est nécessaire car les applications résident à l'intérieur de windows qui par la conception de permettre le multi-tâches et ne sont pas des tâches orientées, les plates-formes mobiles sont principalement conçu pour les utilisateurs de se concentrer sur une tâche à la fois. Une fois que l'utilisateur a terminé la tâche, ils doivent décider de la sortie de cette tâche en cliquant sur le bouton d'accueil, bouton de retour ou de changement d'application (tâche) bouton. Cela s'applique vraiment à toutes les plates-formes.
Aucune des méthodes ci-dessus aidé mon Xamarin Android app pour arrêter complètement comme j'ai essayé de le fermer à partir de l'Activité B, ayant Une Activité aussi ouvrir sous lui.
Un gars intelligent gauche un truc ici
FinishAffinity()
dans l'Activité B (ferme les activités,cependant, l'application est encore en vie à l'arrière-plan)
JavaSystem.Exit(0)
de tuer l'arrière-plan de l'application (je pense qu'il peut être remplacé parAndroid.OS.Process.KillProcess(Android.OS.Process.MyPid());
ouSystem.Diagnostics.Process.GetCurrentProcess().Kill();
)Ma méthode pour fermer l'application:
private void CloseBtn_Click(object sender, EventArgs e){
FinishAffinity();
JavaSystem.Exit(0);
}
Système.De l'environnement.Exit(0); fonctionne pour moi
Aucun de ces travaux avec Android 8. Ils ont tous quitté l'application en arrière-plan.
Je peux le prouver en appuyant sur la fermeture de bouton et l'application est toujours là.
Pour mes tests j'ai utilisé une nouvelle marque simple application Android et essayé toutes les réponses à vos questions.