Я создал класс для операций «запомни меня» на экране входа в систему.Я храню данные пользователя на SharedPreferences
.Работает при отладке на Android Studio.Я изменяю versionCode
и versionName
на build.gradle
файле.Все в порядке, SharedPreferences
данные доступны.Но когда я обновляюсь из Google Play Store, мои данные удаляются.Спасибо за ответы.
RememberMe.java: getLastUser () возвращенные переменные модели являются нулевыми.
public class RememberMe {
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor sharedEditor;
public static int USERNAME_AND_PASSWORD = 0,
USERNAME = 1;
public RememberMe(Context context) {
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
sharedEditor = sharedPreferences.edit();
}
/**
* @param userIdentity Example; username, email.
* @param userPassword
* @param isLastUser If this value is true 'getLastUser' function will get this user.
*/
public void addUser(String userIdentity, String userPassword, boolean isLastUser){
// Save user.
sharedEditor.putString(userIdentity, userPassword);
// Make last user.
if (isLastUser){
sharedEditor.putString("remember_me_last_user", userIdentity);
}
// Commit
sharedEditor.apply();
}
@Nullable
public String getUserPassword(String userIdentity){
return sharedPreferences.getString(userIdentity, null);
}
public RememberMeModel getLastUser(int resultType){
if (resultType == USERNAME_AND_PASSWORD){
return new RememberMeModel(
sharedPreferences.getString("remember_me_last_user", null),
getUserPassword(sharedPreferences.getString("remember_me_last_user", null))
);
}
return new RememberMeModel(
sharedPreferences.getString("remember_me_last_user", null),
null
);
}
}
В манифесте. Xml
android:allowBackup="true"
android:fullBackupContent="true"
В build.gradle
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.oka.okaoka"
minSdkVersion 19
targetSdkVersion 27
versionCode 8
versionName "v1.0.8"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8
}
}