Android лучший способ сохранить очень маленькие данные на устройстве - PullRequest
0 голосов
/ 06 сентября 2018

при запуске приложения мне нужно проверять три вещи при каждом запуске приложения

  1. Версия приложения
  2. это логин пользователя
  3. - Учетная запись пользователя создана

Я использую Firebase для базы данных, поэтому каждый раз, когда использую приложение запуска, я проверяю в БД на Datachange , а затем отправляю пользователя на активность в соответствии с результатами возврата и областью дела, как показано ниже:

//check if newer version is available (Step 1)
if (appVersionMatch) {
    CheckLogin();
} else {
    //Take user to appstore for app update
}


// (Step 2)
public void CheckLogin() {
    if (userLogin) {
        CheckUserExist()
    } else {
        //Show user Login activity
    }
}


// (Step 3)
public void CheckUserExist() {
    if (user.exist()) {
        //Go To main Activity
    } else {
        //Go To Register activity
    }
}

и этот процесс работает нормально, но всегда требуется некоторое время, чтобы проверить все эти три вещи ... я думал, смогу ли я сохранить при первом входе в систему и при создании учетной записи информацию, поэтому нет необходимости проверять ее снова, чтобы пользователь мог перейти к основной деятельности быстрее, я пытался сделать это со следующими, но не работает, как ожидалось:

 SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);
                    editor = pref.edit();
                    boolean isLoogenIn = pref.getBoolean("userLoginCheck", false);

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Я бы так сделал, используя SharedPreferences.

Сначала создайте отдельный класс (я использую его для сохранения другой информации, такой как url, константы и т. Д.). Создайте SharedPreferences.

public class project_constants {
private static String PREF_NAME = "project_pref";

private static SharedPreferences getPrefs(Context context) {
    return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
}

public static boolean getUserLogin(Context context) {
    return getPrefs(context).getBoolean("login", false);
}

public static void setUserLogin(Context context, boolean input) {
    SharedPreferences.Editor editor = getPrefs(context).edit();
    editor.putBoolean("login", input);
    editor.apply();
}

Теперь, когда пользователь входит в систему, вы должны использовать project_constants.setuserLogin(getApplicationContext,True);.

Теперь, когда вы хотите проверить, вошел ли пользователь в систему или нет, вы можете использовать project_constants.getuserLogin(getApplicationContext);, если это правда, пользователь вошел в систему, иначе нет.

0 голосов
/ 06 сентября 2018

В первый раз вы должны сохранить ваши данные в SharedPreference, когда данные готовы из firebase с:

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);
editor = pref.edit();
editor.putBoolean("userLoginCheck", false);
editor.commit();

Тогда вы можете получить значение предпочтения в следующий раз:

 boolean isLoogenIn = pref.getBoolean("userLoginCheck", true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...