#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, или лучше: ответьте на свой собственный вопрос, объяснив свое решение (и приняв его)