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

#android

#Android

Вопрос:

Мне нужно определить идентификатор устройства Android при первом запуске приложения для Android. Я упоминаю, что я не использую общие настройки или файлы. Как определить первый запуск приложения?

Комментарии:

1. Есть ли что-нибудь, что мешает вам использовать SharedPreferences? Вероятно, это распространенный способ решения вашей проблемы.

2. другого решения моей проблемы нет?

3. Нет, по крайней мере, просмотр 6 подтверждает это

Ответ №1:

вы можете использовать этот блок кода для операций только в первый раз

в onCreate:

  SharedPreferences prefs =
 PreferenceManager.getDefaultSharedPreferences(this);
        if (prefs.getBoolean("first_time", true)) {
            //do something for first time
            SharedPreferences.Editor editor = prefs.edit();
            editor.putBoolean("first_time", false);
            editor.commit();
        }
  

Ответ №2:

Вы можете использовать Android.app.Application class для сохранения флага

Инициализируйте приложение flag = false ; в первый раз.. при установке приложения измените флаг на true

Если вы хотите хранить данные, глобальные переменные, к которым необходимо обращаться отовсюду в приложении, из нескольких действий, другими словами, вы хотите поддерживать глобальное «состояние» всего приложения, объект Application может помочь.

Для этого мы должны создать класс, который расширяет Android.app.Application класс, добавив к нему наши собственные методы, и определить этот класс AndroidManifest.xml следующим образом

  <application
    android:name=".HelloApplication "
    android:icon="@drawable/first_aid"
    android:label="@string/app_name" >
...
</application>




public class HelloApplication extends Application {
        private int globalVariable=1;

        public int getGlobalVariable() {
                return globalVariable;
        }

        public void setGlobalVariable(int globalVariable) {
                this.globalVariable = globalVariable;
        }
  

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

   ((HelloApplication)getApplication()).setGlobalVariable(10);
    int valiable=((HelloApplication)getApplication()).getGlobalVariable();
  

Объект приложения не будет уничтожен до тех пор, пока в приложении не будет обнаружена какая-либо неразрушенная активность. Даже когда все приложение стирается из памяти, вы можете повторно инициализировать переменную в onCreate методе, если это необходимо.
Вы можете попробовать то же самое хранение данных, например, с помощью простого объекта со статическим полем и методами, как показано ниже, это менее элегантный метод, и если повторная инициализация необходима после завершения работы всего приложения, вы должны реализовать повторную инициализацию в каждом действии.

Комментарии:

1. Мне нужно определить, когда приложение запускается в первый раз. Мне не нужно что-то для сохранения данных. Я решил эту проблему с помощью общих настроек.

2. В вашем вопросе вы упомянули, что «я упоминаю, что я не использую общие настройки или файлы»

3. @Gabrielle вам следует обновить свой вопрос, указав, что вы, наконец, решили использовать SharedPreferences, или лучше: ответьте на свой собственный вопрос, объяснив свое решение (и приняв его)