Начало Windows Phone 8 Development: урок 2. Доступ к локальному хранилищу приложения

в 13:45, , рубрики: .net, visual studio 2012, windows phone 8, XAML, разработка под windows phone

И так, приступим ко второму уроку. Надеюсь, он будет для Вас более интересным. Многим разработчикам под смартфоны интересен вопрос доступности хранилища на устройстве для их приложений, а так же его размеры и использование. Для каждого приложения существует своё изолированное локальное хранилище. Оно независимо от остальных приложений и ОС, и к нему имеет доступ только это приложение.

Сразу же встает два вопроса: возможность использовать SD карту и размер доступного пространства. На первый вопрос ответ — да, использовать SD карту можно. Ответ на второй вопрос — без ограничений. То есть все свободное пространство.

Что касается приложения, которое мы создадим в этом уроке, то оно будет использовать локальное хранилище для чтения/записи текстовых сообщений и счетчик. Счетчик будет увеличиваться при каждом запуске приложения, а так же будет показываться последнее, введенное Вами сообщение.

Внешний вид

image

Как Вы уже заметили, используется два TextBlocks для вывода сообщений и счетчика, и один TextBox для ввода нового сообщения. Макет как всегда использует XAML и мой любимый StackPanel:

image

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

Загрузка страницы

Перед добавлением логики, убедитесь, что добавлены необходимые пространства имен:

image

При загрузке страницы в первую очередь необходимо убедиться, что файл в котором хранится счетчик и сообщения существует. Если он существует, то считываем необходимые данные и передаем их в глобальную переменную. Если же файла нет, то записываем в счетчике «0», а в сообщениях «Пусто»( No messages..!) нового файла. Я буду использовать файл с именем LS.txt (сокращение от Local Storage).

Ну и естественно передам значения в TextBlocks заменяя символы “##” в строке на значения переменных, используя функцию string.Replace.

image

Действия при закрытии приложения

Если приложение закрывается при нажатии на кнопки Назад или Пуск, мы заменяем файл LS.txt новым, предварительно обновив данные на актуальные. Сначала увеличиваем счетчик, а потом записываем сообщение.

image

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

Сохранение нового сообщения

Передаем содержимое TextBox в переменную, и выводим пользователю текстовое сообщение про удачное сохранение.

image

Тестируем

Запускаем нажатием на F5 и ждем загрузки. После загрузки видим счетчик показывает 0, и нет сообщений. Набираем новое и сохраняем.

image

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

image

Теперь запустим его снова. Все работает. Все обновляется.

image

image

Автор: struggleendlessly

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js