2013-08-02 3 views
0

Я делаю приложение, в котором я хочу внедрить логин. Я сохраняю пароль пользователя в SharedPreference, он хранится правильно и работает хорошо. но когда я принудительно закрываю приложение, ключ предпочтения очищается. Я сохраняю ключ в следующем коде, когда пользователь нажимает кнопку okey.Ключ предпочтения очищается, когда приложение принудительно закрывается

case R.id.bOkey: 
      if (sp.contains(KEY_PASSWORD)) { 
       Toast.makeText(getApplicationContext(), "contains the key", Toast.LENGTH_LONG).show(); 
       if (sp.getString(KEY_PASSWORD, null).equals(etPassword.getText().toString())) { 
        Toast.makeText(getApplicationContext(), "Login Success", Toast.LENGTH_LONG).show(); 
       }else{ 
        Toast.makeText(getApplicationContext(), "Login Failed", Toast.LENGTH_LONG).show(); 
       } 
      }else{ 
       Toast.makeText(getApplicationContext(), "Does not contains the key", Toast.LENGTH_LONG).show(); 
       sp.edit().putString(KEY_PASSWORD, etPassword.getText().toString()).commit(); 
      } 
      break; 

Спасибо заранее! -Usman Riaz-

+0

Я где-то читал, что прикованные sharedPreferences не работают (всегда), стараются не связывать их –

+0

Цепные средства? ? @MarkoNiciforovic –

+0

Он не отвечает на ваш вопрос, но по соображениям безопасности вы действительно не должны сохранять пароль пользователя для SharedPreferences в виде открытого текста. Вы должны, по крайней мере, зашифровать его, иначе пароль пользователей может стать скомпрометированным. –

ответ

0

Вы должны сохранить Persistent Data также OnPause(), потому что Вы полностью уверены, что ваше приложение будет переключаться на OnPause состояние перед закрытым ..
Так «всегда сохранять данные на OnPause (метод Мораль) ».

Смежные вопросы