И так, приступим ко второму уроку. Надеюсь, он будет для Вас более интересным. Многим разработчикам под смартфоны интересен вопрос доступности хранилища на устройстве для их приложений, а так же его размеры и использование. Для каждого приложения существует своё изолированное локальное хранилище. Оно независимо от остальных приложений и ОС, и к нему имеет доступ только это приложение.
Сразу же встает два вопроса: возможность использовать SD карту и размер доступного пространства. На первый вопрос ответ — да, использовать SD карту можно. Ответ на второй вопрос — без ограничений. То есть все свободное пространство.
Что касается приложения, которое мы создадим в этом уроке, то оно будет использовать локальное хранилище для чтения/записи текстовых сообщений и счетчик. Счетчик будет увеличиваться при каждом запуске приложения, а так же будет показываться последнее, введенное Вами сообщение.
Внешний вид
Как Вы уже заметили, используется два TextBlocks для вывода сообщений и счетчика, и один TextBox для ввода нового сообщения. Макет как всегда использует XAML и мой любимый StackPanel:
В этот раз для TextBlocks мы задали свойства Name, так как будем передавать содержимое в них извне. А теперь рассмотрим что происходит при загрузке страницы.
Загрузка страницы
Перед добавлением логики, убедитесь, что добавлены необходимые пространства имен:
При загрузке страницы в первую очередь необходимо убедиться, что файл в котором хранится счетчик и сообщения существует. Если он существует, то считываем необходимые данные и передаем их в глобальную переменную. Если же файла нет, то записываем в счетчике «0», а в сообщениях «Пусто»( No messages..!) нового файла. Я буду использовать файл с именем LS.txt (сокращение от Local Storage).
Ну и естественно передам значения в TextBlocks заменяя символы “##” в строке на значения переменных, используя функцию string.Replace.
Действия при закрытии приложения
Если приложение закрывается при нажатии на кнопки Назад или Пуск, мы заменяем файл LS.txt новым, предварительно обновив данные на актуальные. Сначала увеличиваем счетчик, а потом записываем сообщение.
Ну и в конце всего необходимо сохранить новое сообщение и выйти из приложения, вызвав событие OnNavigatedFrom.
Сохранение нового сообщения
Передаем содержимое TextBox в переменную, и выводим пользователю текстовое сообщение про удачное сохранение.
Тестируем
Запускаем нажатием на F5 и ждем загрузки. После загрузки видим счетчик показывает 0, и нет сообщений. Набираем новое и сохраняем.
После нажатия на Сохранить видим текстовое сообщение. После удачного сохранения вызывается инкремент счетчика, и приложение само закрывается.
Теперь запустим его снова. Все работает. Все обновляется.
Автор: struggleendlessly