2010-07-16 3 views
3

Я разрабатываю приложение для Android, в котором первое действие выполняется для входа. После успешной аутентификации пользователь может увидеть действие с 4 вкладками. Моя проблема заключается в том, что когда пользователь нажимает кнопку «домой», приложение должно завершаться, и когда пользователь снова запускает мое приложение, он должен снова видеть экран входа в систему и после успешного входа в систему, пользователь должен иметь возможность видеть вкладку, на которой он работал до того, как приложение завершилось (т.е. сохраните состояние для всех вкладок). Пожалуйста, помогите мне в этом. Заранее спасибо.Сохранить состояние в приложении для Android

ответ

2

Вы можете сохранить состояние тремя способами в Android.

  1. Предпочтения: используется для хранения настроек приложения.
  2. Файловая система: с помощью Android IO.
  3. Sql облегченного DB: сохранить данные в базу данных

Вы можете сохранить закладку в БД и выбрать сохраненное состояние каждый раз, когда пользователь возвращается к приложению.

Сайт android dev содержит много информации об этих методах хранения. data storage

0

использование SharedPreferences

SharedPreferences Пример (из WebWorld):

 /** 
     * get if this is the first run 
     * 
     * @return returns true, if this is the first run 
     */ 
      public boolean getFirstRun() { 
      return mPrefs.getBoolean("firstRun", true); 
     } 

     /** 
     * store the first run 
     */ 

     public void setRunned() { 
      SharedPreferences.Editor edit = mPrefs.edit(); 
      edit.putBoolean("firstRun", false); 
      edit.commit(); 
     } 

     SharedPreferences mPrefs; 

    /** 
    * setting up preferences storage 
    */ 
    public void firstRunPreferences() { 
     Context mContext = this.getApplicationContext(); 
     mPrefs = mContext.getSharedPreferences("myAppPrefs", 0); //0 = mode private. only this app can read these preferences 
    } 
3

Многие приложения могут обеспечить способ захвата пользовательских настроек на настройки конкретного приложения или деятельности. Для поддержки этого Android предлагает простой набор API.

Предпочтения - это, как правило, пары значений. Они могут храниться как «Общие предпочтения» в различных действиях в приложении (обратите внимание, что в настоящее время они не могут быть разделены между процессами). Или это может быть что-то, что необходимо сохранить для конкретной деятельности.

  1. Общие предпочтения: общие настройки могут использоваться всеми компонентами (действиями, услугами и т. Д.) Для приложений.

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

Общие предпочтения:

Общие настройки управляются с помощью getSharedPreferences метода в Context класса. Настройки сохраняются в файле по умолчанию (1) или вы можете указать имя файла (2), которое будет использоваться для ссылки на настройки.

(1) Вот как вы получите экземпляр при указании имени файла

public static final String PREF_FILE_NAME = "PrefFile"; 
    SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE); 

MODE_PRIVATE является режим работы для предпочтений. Это режим по умолчанию и означает, что к созданному файлу будет обращаться только вызывающее приложение. Поддерживаются два других режима: MODE_WORLD_READABLE и MODE_WORLD_WRITEABLEMODE_WORLD_READABLE другое приложение может читать созданный файл, но не может его изменить. В случае MODE_WORLD_WRITEABLE другие приложения также имеют права на запись для созданного файла.

(2) Рекомендуемый способ заключается в использовании режима по умолчанию на PreferenceManager, без указания имени файла

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 

Наконец, когда у вас есть экземпляр предпочтения, вот как вы можете получить сохраненные значения от предпочтений:

int storedPreference = preferences.getInt("storedInt", 0); 

Для сохранения значений в файле настроек SharedPreference.Editor объект должен использоваться. Editor - это вложенный интерфейс класса SharedPreference.

SharedPreferences.Editor editor = preferences.edit(); 
editor.putInt("storedInt", storedPreference); // value to store 
editor.commit(); 

методы Редактор также поддерживают как remove() и clear() удалить значение предпочтения из файла.

Активность Предпочтения:

Общие предпочтения могут быть использованы другими компонентами приложения. Но если вам не нужно делиться предпочтениями с другими компонентами и вы хотите, чтобы у вас были личные предпочтения. Вы можете сделать это с помощью метода активности getPreferences(). Метод getPreference использует метод getSharedPreferences() с именем класса активности для имени файла предпочтения.

Ниже приводится код, чтобы получить преференции

SharedPreferences preferences = getPreferences(MODE_PRIVATE); 
int storedPreference = preferences.getInt("storedInt", 0); 

Код для хранения значений также же, как и в случае общих предпочтений.

SharedPreferences preferences = getPreference(MODE_PRIVATE); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putInt("storedInt", storedPreference); // value to store 
editor.commit(); 

Вы также можете использовать другие методы, такие как сохранение состояния активности в базе данных. Примечание. Android также содержит пакет под названием android.preference. Пакет определяет классы для реализации пользовательского интерфейса приложений.

Чтобы увидеть еще несколько примеров, отметьте сообщение Android Data Storage на сайте разработчиков.

Смежные вопросы