Eclipseで構築しているAndroid用のGingerbread2.3.3アプリケーションに3つのアクティビティがあります。
1)MainActivity
--- 2つのオプション、LoginActivityに移動するか、HomeScreenActivityに直接移動します
2)LoginActivity
---ログイン資格情報(別名ユーザー名とパスワード)を入力し、検証してから、SharedPreferencesに保存します。検証に成功すると、HomescreenActivityに移動します。LoginActivityのSharedPreferencesセクションにあるものは次のとおりです。
public static final String PREFS_FILE = "MY_PREFS";
SharedPreferences prefs = getSharedPreferences(PREFS_FILE, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("USERNAME", getUsername());
editor.putString("PASSWORD", getPassword());
editor.commit();
3)HomescreenActivity
---TextViewの右上隅に現在ログインしているユーザーを表示する基本的なホーム画面。このため、私のonResume()には次のものが含まれています。
public static final String PREFS_FILE = "MY_PREFS";
SharedPreferences prefs = getSharedPreferences(PREFS_FILE, MODE_PRIVATE);
TextView name_text = (TextView) findViewById(R.id.name_text_vw);
name_text.setText(prefs.getString("USERNAME", "");
LoginActivity
とログインを使用すると、のTextViewにユーザー名が正しく表示されHomescreenActivity
ます。ただし、アプリケーションを終了し、アクティビティをスタックから削除するために他の処理を行う場合は、アプリケーションに戻り、直接自分の場所に移動してHomescreenActivity
、ユーザー名が既にログインしていることを確認します。しかし、これは起こりません。誰かが理由を知っていますか?SharedPreferencesは、アプリケーションを終了した後でも設定とデータを保存する方法だと思いました。たぶん私は正しいモードを使用していません-別名MODE_WORLD_READABLE
またはMODE_WORLD_WRITABLE
?