Вопрос по android – Как внести глобальные изменения в мое приложение в Android?

1

В моем приложении есть меню настроек, которое контролирует единицы измерения, используемые в приложении - метрические или американские единицы. Поэтому, когда пользователь выбирает один из них в опциях в меню, я хочу, чтобы мое приложение использовало выбранные единицы во время отображения и расчетов.

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

Есть ли лучший способ сделать это?

Спасибо

Не нужно делиться кодом. Человек просто сохраняет логическое значение user1378730
sharedpreferences - это единственная опция, о которой я могу подумать ... в то время как вы можете оставить один логический параметр в классе приложения (расширение из приложения) и обновлять его каждый раз, когда вы открываете свою основную деятельность. этот флаг можно использовать во всех видах деятельности. Tarun

Ваш Ответ

3   ответа
2

http://developer.android.com/guide/topics/data/data-storage.html

Тем не менее, похоже, что для вашего случаяSharedPreferences в порядке

1

иSharedPreferencesи назначив это было бы хорошо.

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

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

Отредактировал мой ответ на то, как это должно было быть.
5

Applications class и храните ваши данные там, используя Getter и setter.

Так что ваши данные будут сохранены в приложении.

public class SocketManager extends Application {
private static SocketManager singleton;
public int mBluetoothState;


public synchronized static SocketManager getInstance(Context context) {
    if (null == singleton) {
        singleton = new SocketManager();
    }
    return singleton;
}

public synchronized void setState(int state) {
    mBluetoothState = state;
}

public synchronized int getState() {
    return mBluetoothState;
}
}

Доступ к нему в деятельности, как:

  SocketManager socketManager = SocketManager.getInstance(this);
  socketManager.setState(10);
  socketManager.getState();

Добавьте ваше приложение в файл Maanifest следующим образом:

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

   <activity .... />

 </application>

Edit :

Вы должны добавить свое имя класса, которое расширяет приложение вApplication Tag нет в теге активности

Для дальнейшей ссылки проверьте этоссылка на сайт

Хорошо работает, если приложение имеет несколько действий.
Вот как я делаю это в своем приложении: App app = ((App) getApplicationContext ()); где приложение это имя моего класса.
Тем не менее, ваше приложение удаляется, вы можете сохранить данные.
Это хороший способ, если я хочу сохранить несколько значений данных. Это работает, если процесс приложения убит? Мне нужно, чтобы мои настройки сохранялись даже после закрытия всего приложения. ask
Я получаю ClassCastException - не могу привести к android.app.Activity. Любой совет? ask

Похожие вопросы