Question

Tout d'abord, je ne suis pas sûr si je suis même aller sur ce la meilleure façon en termes de design, mais je suis un peu nouveau pour Android et très nouveau pour les Xamarin.Les formulaires.Ma configuration est une série de ContentPages dans un Xamarin.Les formes PCL qui tous traitent de l'information à partir d'un service REST.Ce service, lors de la connexion, des subventions d'un WorkToken l'application tient alors sur pour effectuer d'autres opérations.Je suis stocker dans un ISessionManager.

Mon problème est un problème de flux de travail.J'ai un LoginPage que je tiens à présenter à l'utilisateur si leur fin de session/reproché/que ce soit;en gros, si ils ne sont pas connectés et essayer de faire quelque chose, je veux pousser cette page sur la pile et de le forcer à tenter de se connecter et si elles fournissent des informations d'identification valides de les laisser continuer là où ils l'avaient laissé.Tout cela se déroule, pour la plupart, dans le PCL, mais j'ai créé un Android de mise en œuvre de la ISessionManager interrogé sur chaque ContentPage's substituée OnAppearing la méthode.Chaque page des appels ISessionManager's CheckLogin qui va le faire, et si ils ne sont pas connectés, il va en créer un Intent et de commencer à l' LoginActivity grâce à cela. LoginActivity essentiellement juste de s'enroule autour de la PCL est LoginPage.

Le problème, je suis en cours d'exécution en est qui, faisant de cette façon, le LoginActivity est exécuté de manière asynchrone sur le dessus de ce que la page appelée.Cette page appelant est dans un état rompu, cependant, parce qu'il n'a pas initialisé correctement à travers le RESTE encore.J'imagine qu'il y a deux solutions possibles.Exécuter le Intent de façon synchrone (dont je ne pense pas) ou repenser ma conception.Voici l' Intent programme d'installation:

var intent = new Intent(_context, typeof(LoginActivity));
intent.AddFlags(ActivityFlags.NewTask);
_context.StartActivity(intent);

J'ai vérifié plusieurs Xamarin forums pour related posts sur ce sujet, mais n'ai pas trouvé beaucoup au-delà de navigation de base des flux de travail dans Xamarin.Les formulaires.

Edit:J'ai trouvé quelque chose d'analogue à ce que j'essaie de faire ici: Comment passer des variables à partir d'une nouvelle de l'intention à la classe qui l'a créé dans android, mais dans le cadre de Xamarin.Les formulaires.L' startActivityForResult il permettrait de résoudre mon problème s'il existait dans Forms.Context, mais il ne semble pas être un équivalent.

Était-ce utile?

La solution

Pourquoi êtes-vous créer un LoginActivity?est-ce parce que vous avez besoin d'utiliser quelque chose de maternelle à partir de l'android?

Ma première pensée c'est que une fois que vous vérifiez le jeton d'état sur la OnAppearing, vous qui pouvez décider de pousser ou de ne pas le modal pour la page de connexion, après le login de l'utilisateur est fait et que le jeton est de sauvegarder, vous pouvez pop, le modal et il va afficher la page précédente de l'utilisateur a été.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top