Отловить первый запуск приложения

233
26 октября 2017, 07:10

Объясните пожалуйста в теории, как отловить первый запуск приложения? Читал тут, не то, все слишком громоздко.

Answer 1

В том вопросе просто кладут переменную IsFirstTimeLaunch в SharedPreferences, сразу после запуска приложения. Потом перед каждым запуском приложения проверяют её, если она проинициализирована и равна true, то приложение уже запускалось на данном устройстве.

Answer 2

В общем, если кому интересно, то я сделал так:

Инициализировал статический String, и переменную типа boolean;

private static final String firstStartApp = "first_start";
private boolean firstStart;

В методе onCreate переменной firstStart задаю true;

firstStart = true;

В методе onDestroy переменной firstStart задаю false и сохраняю в SharedPreferences;

firstStart = false;
mEditor.putBoolean(firstStartApp, firstStart);
mEditor.apply();

Так как изначально было передано значение true, а потом false, SharedPreferences сохраняет последнее значение, и в самом начале, в методе onStart, я сделал простую проверку состояния переменной firstStart по SharedPreferences, и так как его последнее значение было false, то true второй и последующие разы уже не будет срабатывать;

boolean isCheck = mPreferences.getBoolean(firstStartApp, firstStart);

Ну и здесь собственно можно сделать условие:

if (isCheck) {
        Toast.makeText(this, "Первый запуск", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "Уже было запущено", Toast.LENGTH_SHORT).show();
    }
READ ALSO
Считывание текста из файла в нужной кодировке

Считывание текста из файла в нужной кодировке

Необходимо считать строки из файла и записать их в массив, а потом отобразить на лейблеНо почему-то русскую кодировку не распознает

308
Текст в коллекцию точек

Текст в коллекцию точек

Всем привет!

227