アプリケーションに関して問題が発生しました。ログイン後、ホームページにつながります。バックプレスされたホームページでは、アプリケーションがログアウトされます。次にアプリを開くと、ログインページから再び開始されます。
値を渡し、通知も設定しました。それを防ぐ方法がわかりません@Thanks
SharedPreferences
。ログインの詳細を SharedPreference に保存するには
SharedPreferences sp = context.getSharedPreferences("loginSaved", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("username", "some user value");
editor.putString("password", "some password value");
editor.commit();
SharedPreference
ログインページを開いて値があるかどうかを確認します。ログインしているかどうかを確認するには
SharedPreferences sp = context.getSharedPreferences("loginSaved", Context.MODE_PRIVATE);
String username = sp.getString("username", null);
String password = sp.getString("password", null);
if(username != null && password != null){
// login automatically with username and password
}
else{
// show login page
}
SharedPreference
ユーザーが正しくログアウトした時点から loginDetails をクリアします。あなたの活動の流れは次のとおりだと思います:ログイン->メイン。メイン アクティビティが必要に応じてログイン アクティビティを開始するように、アクティビティを逆にすることができます。
メイン アクティビティもMAIN
マニフェストのアクティビティにして、それがデフォルトになるようにします。
ログイン状態を必要とする各アクティビティで、有効なセッションまたは資格情報を確認し、onResume()
必要に応じてログイン アクティビティを起動します。ログイン アクティビティのバック プレス -> メイン アクティビティの再開 -> ログイン アクティビティの起動のループを防ぐには、たとえば、ログイン アクティビティのonBackPressed()
呼び出しmoveTaskToBack(true)
をオーバーライドして、アプリをバックグラウンドに移動することができます。
ログインが成功するfinish()
と、メインのアクティビティなどの以前のアクティビティが再開されるように、ログイン アクティビティのみが実行されます。
明示的なログアウトにより、セッション/資格情報データがクリアされ、おそらくログイン アクティビティが開始されます。
これにより、アプリケーションのバック スタックが一貫した状態に維持され、アプリケーションを再開できる複数のセッションを必要とするアクティビティに簡単に拡張できます。
資格情報/セッション データをローカルに保存するには、eg を使用しますSharedPreferences
。