0

アプリケーションに関して問題が発生しました。ログイン後、ホームページにつながります。バックプレスされたホームページでは、アプリケーションがログアウトされます。次にアプリを開くと、ログインページから再び開始されます。

値を渡し、通知も設定しました。それを防ぐ方法がわかりません@Thanks

4

2 に答える 2

2
  • ログインの詳細を に保存します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ログインページを開いて値があるかどうかを確認します。
  • ログインの詳細が 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 をクリアします。
于 2013-05-06T10:25:03.337 に答える
0

あなたの活動の流れは次のとおりだと思います:ログイン->メイン。メイン アクティビティが必要に応じてログイン アクティビティを開始するように、アクティビティを逆にすることができます。

  • メイン アクティビティもMAINマニフェストのアクティビティにして、それがデフォルトになるようにします。

  • ログイン状態を必要とする各アクティビティで、有効なセッションまたは資格情報を確認し、onResume()必要に応じてログイン アクティビティを起動します。ログイン アクティビティのバック プレス -> メイン アクティビティの再開 -> ログイン アクティビティの起動のループを防ぐには、たとえば、ログイン アクティビティのonBackPressed()呼び出しmoveTaskToBack(true)をオーバーライドして、アプリをバックグラウンドに移動することができます。

  • ログインが成功するfinish()と、メインのアクティビティなどの以前のアクティビティが再開されるように、ログイン アクティビティのみが実行されます。

  • 明示的なログアウトにより、セッション/資格情報データがクリアされ、おそらくログイン アクティビティが開始されます。

これにより、アプリケーションのバック スタックが一貫した状態に維持され、アプリケーションを再開できる複数のセッションを必要とするアクティビティに簡単に拡張できます。

資格情報/セッション データをローカルに保存するには、eg を使用しますSharedPreferences

于 2013-05-06T11:07:58.890 に答える