Объясните пожалуйста в теории, как отловить первый запуск приложения? Читал тут, не то, все слишком громоздко.
В том вопросе просто кладут переменную IsFirstTimeLaunch
в SharedPreferences
, сразу после запуска приложения. Потом перед каждым запуском приложения проверяют её, если она проинициализирована и равна true
, то приложение уже запускалось на данном устройстве.
В общем, если кому интересно, то я сделал так:
Инициализировал статический 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();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо считать строки из файла и записать их в массив, а потом отобразить на лейблеНо почему-то русскую кодировку не распознает
Здравствуйте господа форумчане!