私たちは奇妙な問題に直面しています。既存のアプリケーションの設計上の欠陥かどうかはわかりません。あなたの助け/提案は大歓迎です。
Xamarin.formsアプリがあります。 iOSとAndroidの両方を対象としています。
問題は主にAndroidアプリで発生しています。
アプリケーションフロー:
- アプリケーションからログアウトすると、アプリはログアウトアクティビティを開き、ユーザー情報やその他のデータを削除します。
- クライアントSSOの実装を含むログイン用の新しいアクティビティを開きます
- ログインに成功すると、アプリはユーザー情報を設定し、Webサービスからデータを取得します。
- 次に、LoadApplicationメソッドを呼び出して、フローがメインアプリケーションに戻るようにします。
これで、ユーザーがログアウト/ログインを数回実行すると、LoadApplicationメソッドを呼び出して新しいアプリケーションインスタンスを開き、ホーム画面を表示します。
したがって、ユーザーがホームページの戻るボタンをタップしているとき、アプリが閉じておらず、同じアプリケーションの以前のインスタンスが表示されます。 ユーザーは戻るボタンを数回押す必要があります(ユーザーがログアウト-ログインを実行する回数によって異なります)。
これを止める良い方法はありますか? LoadApplicationが呼び出される前に、アプリケーションの現在のインスタンスを閉じることはできますか?
長い間立ち往生。
回答:
回答№1は2私は電話を避けようとします LoadApplication
何度も。ナビゲーションスタックを制御する必要があります。
LogoutPageを使用している場合
- 経由ですべてのビューを削除
PopToRootAsync
- 見せる
LoginPage
await Navigation.PopToRootAsync(false);
await Navigation.PushAsync(new LoginPage(), true);
このブログ投稿は読む価値があるかもしれません: https://jfarrell.net/2015/01/22/understanding-xamarin-forms-navigation/
回答№2の場合は0
ぜひお試しください。
https://stackoverflow.com/a/36885388/1941942
[Activity (NoHistory = true)]
public class LoginActivity : Activity { }
MainActivityに実装した後、インスタンスの保存エラーがしばらく発生しました。