Главная страница
Навигация по странице:

  • Общие Настройки (Shared preferences)

  • Сохранение

  • Прямая работа с файлами

  • Лабораторная работа «Использование SharedPreferences для сохранения состояния»

  • Лабораторная работа «Использование SharedPreferences для сохранения настроек»

  • Работа с файлами

  • Использование статических файлов как ресурсов

  • моб разраб. Лабораторные работы с 1 по 21. Лабораторная работа Использование значений строк и цветов


    Скачать 5.49 Mb.
    НазваниеЛабораторная работа Использование значений строк и цветов
    Анкормоб разраб
    Дата05.03.2022
    Размер5.49 Mb.
    Формат файлаdocx
    Имя файлаЛабораторные работы с 1 по 21.docx
    ТипЛабораторная работа
    #383909
    страница16 из 20
    1   ...   12   13   14   15   16   17   18   19   20

    Сохранение состояния и настроек приложения


    Поскольку жизненный цикл приложений и Активностей в Android может прерваться в любой момент, для повышения привлекательности и удобства пользовательского интерфейса желательно иметь возможность сохранять (и восстанавливать!) состояния Активностей не только при выходе из активного состояния, но и между запусками. Android предлагает для этого следующие механизмы:

      • Общие Настройки (Shared preferences): простой способ сохранения состояния UI и настроек приложения, использующий пары ключ/значение для хранения примитивных типов данных и обеспечения доступа к ним по имени.

      • Сохранение состояния приложения: Для Активностей существуют обработчики событий, позволяющие сохранять и восстанавливать текущее состояние UI, когда выходит и возвращается в активный режим. Для сохранения состояния используется объект класса Bundle, который передается методам onSaveInstanceState (для сохранения состояния), onCreateи

    onRestoreInstanceState (для восстановления). Для доступа к данным в этом случае также используются пары ключ/значение. Обработчики событий из суперклассов берут на себя основную работу по сохранению и восстановлению вида UI, фокуса полей и т. д.

      • Прямая работа с файлами. Если не подходят описанные выше варианты, приложение может напрямую читать и писать данные из файла. Для этого можно использовать как стандартные классы и методы Java, обеспечивающие ввод/вывод, так и методы openFileInput и openFileOutput, предоставленные Android, для упрощения чтения и записи потоков, относящихся к локальным файлам.


    Общие Настройки (Shared Preferences)

    Класс SharedPreferences предлагает методы для хранения и получения данных, записываемых в файлы, доступные по умолчанию только конкретному приложению. Такой способ хранения обеспечивает сохранность этих данных не только в течении жизненного цикла приложения, но и между запусками и даже перезагрузкой ОС.

    Для сохранения данных в файле используется транзакционный механизм: вначале требуется получить объект класса SharedPreferences.Editor для конкретного файла настроек, после чего с помощью методов вида putТип этого объекта установить нужные значения. Запись значений производится методом commit. Примеры:

    Сохранение данных:

    private static final String PREFS = "PREFS";

    static final String KEY_STATION = "selectedStation"; private SharedPreferences prefs;

    private static final String NOTHING_SELECTED = "Ничего не выбрано"; private String selectedStation;
    prefs = getSharedPreferences(PREFS, MODE_PRIVATE); Editor editor = prefs.edit(); editor.putString(KEY_STATION, selectedStation); editor.commit();

    Получение данных:

    prefs = getSharedPreferences(PREFS, MODE_PRIVATE);
    selectedStation = prefs.getString(KEY_STATION, NOTHING_SELECTED); tv.setText(selectedStation);

    Лабораторная работа «Использование SharedPreferences для сохранения состояния»

    1. Модифицируйте методы onCreate и onActivityResult проекта MetroPicker для сохранения выбранной станции метро между запусками приложения.

    2. Проверьте работоспособность приложения.



    Лабораторная работа «Использование SharedPreferences для сохранения настроек»

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

    2. Проверьте работоспособность приложения.


    Работа с файлами

    Методы openFileInput и openFileOutput дают возможность работать только с файлами, находящимися в «персональном» каталоге приложения. Как следствие, указание разделителей («/») в имени файла приведет к выбросу исключения.

    По умолчанию файлы, открытые на запись, перезаписываются. Если это не то, что требуется, при открытии установите режим MODE_APPEND.

    Пример работы с файлами:

    String FILE_NAME = "app_data";
    // Открытие выходного файлового потока

    FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);

    // Открытие входного файлового потока FileInputStream fis = openFileInput(FILE_NAME);

    String FILE_NAME = "app_data";

    Через объект Context в приложении также возможен доступ к двум полезным методам:


    Использование статических файлов как ресурсов

    Если приложению необходимо иметь доступ к информации, которую неудобно хранить, например, в СУБД, эти данные можно использовать в виде «сырых» ресурсов, записав их в файлы в каталоге res/raw. Яркий пример подобных данных – словари.

    Статические файлы, как следует из названия, доступны только для чтения, для их открытия используется метод openRawResource:

    Resources res = getResources();

    InputStream file = res.openRawResource(R.raw.filename);


    1   ...   12   13   14   15   16   17   18   19   20


    написать администратору сайта