2017-01-18 5 views
0

ユーザーがアプリを開く、または切り替えるたびにログイン画面を表示する必要があります。 必要な場合にLoginActivityを開くためのソリューションを実装しました。ユーザーが最小化したアプリを開くと、バックスタックの上部にLoginActivityが開かれました。アプリを安全にしてナビゲーションを制限したいので、Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASKフラグを使用したので、バックスタックがクリアされました。ユーザーがアプリを開き、バックスタックを保持(または復元)するたびにログインアクティビティを表示します

しかし、今私はバックスタックを保つ必要があります。よりよい解決策は何でしょうか?オープンされたアクティビティの状態を保存します(それをよりうまく行う方法)?何らかの形でボタンのナビゲーションを戻したくない場合は、ログインが成功した場合はLoginActivityを終了してください。バックスタックの上部にLoginActivityを表示することは安全ですか?

答えて

1

私の意見では、ユーザーがログイン画面に戻る間に戻るボタンを押すと、アプリケーションを終了し、バックスタックをクリーニングする必要があります。しかし、BackStackの上部にあるLoginActivityを、IntentフラグIntent.FLAG_ACTIVITY_REORDER_TO_FRONTで始まるようにしても構いません。ログインが成功すると、LoginActivityを終了することができるので、ユーザーは開いているアクティビティを続けることができます。しかし、ユーザがボタンを押し戻すと、LoginActivityは終了し、バックスタックはyou can use thisにクリアされます。

開いているアクティビティの状態を保存するには、ステートメソッドイベント:onSaveInstanceState() ...を使用して、保存する必要のあるメンバーを状態で保存する必要があります。

関連する問題