Выполнять код при обновлении приложения AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Выполнять код при обновлении приложения Android

Сообщение Anonymous »

В моем приложении для Android есть некоторые общие настройки, и один из них не следует использовать в следующем выпуске. Однако это значение следует использовать в другом общем предпочтении. Я мог бы просто полениться и проигнорировать это, но тогда пользователь должен выполнить некоторые настройки после обновления, чтобы приложение работало должным образом. Поэтому я хочу сделать это во время обновления приложения, другими словами, взять существующее значение из общих настроек и поместить его в новые общие настройки. Это следует сделать только один раз после обновления.

Это то, что я имею в виду, но я не знаю, является ли это лучшей практикой:

Код: Выделить всё

public class UpgradeHandler extends Application {

@Override
public void onCreate() {
super.onCreate();

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

if (prefs.getBoolean("firstTime", true)) {
// Make my shared preferences data migration
// Other stuff to be done once after upgrade

// Store to shared prefs that first time has passed
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", false);
editor.commit();
}
}
}
Я знаю, что механизм обработки действий обновления можно поместить в обычный класс, расширяющий Activity, но для моего приложения крайне важно, чтобы эта обработка общих настроек выполнялась после обновления, поскольку общие настройки, которые должны быть обновлены, могут использоваться в BroadcastReceiver при любой установке приложения. И если я правильно понял, то класс, расширяющий Application и его метод onCreate, всегда вызывается перед любыми действиями, широковещательными приемниками, службами и так далее. Наличие моей обработки обновлений в таком классе должно в моем случае гарантировать, что обработка моих предпочтений всегда выполняется после обновления, но до вызова каких-либо действий или широковещательного приемника. Правильно ли это?
Мой другой вопрос: если я выберу такое решение, правильно ли будет назвать переменную общих предпочтений firstTime, я имею в виду, что я не могу использовать ее в следующий раз, когда мое приложение обновляется, если мне нужно запустить что-то один раз, firstTime тогда будет ложным. Не лучше ли было бы назвать общие настройки, используемые для этого, в каком-то шаблоне, например firstTime_version?

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

Спасибо!>

Подробнее здесь: https://stackoverflow.com/questions/221 ... app-update
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»