Управление жизненным циклом фрагмента



Управление жизненным циклом фрагмента во многом аналогично управлению жизненным циклом операции. Как и операция, фрагмент может существовать в одном из трех состояний:

Возобновлен

Фрагмент виден во время выполнения операции.

Приостановлен

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

Остановлен

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

Самое значительное различие в ходе жизненного цикла между операцией и фрагментом состоит в принципах их сохранения в соответствующих стеках переходов назад. По умолчанию операция помещается в управляемый системой стек переходов назад для операций, когда она останавливается (чтобы пользователь мог вернуться к ней с помощью кнопкиНазад, как описано в статье Задачи и стек переходов назад). В то же время, фрагмент помещается в стек переходов назад, управляемый операцией, только когда разработчик явно запросит сохранение конкретного экземпляра, вызвав метод addToBackStack() во время транзакции, удаляющей фрагмент.

Согласование с жизненным циклом операции

Жизненый цикл операции, содержащей фрагмент, непосредственным образом влияет на жизненый цикл фрагмента, так что каждый обратный вызов жизненного цикла операции приводит к аналогичному обратного вызову для каждого фрагмента. Например, когда операция принимает вызов onPause(), каждый ее фрагмент принимает onPause().

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

onAttach()

Вызывается, когда фрагмент связывается с операцией (ему передается объект Activity).

onCreateView()

Вызывается для создания иерархии представлений, связанной с фрагментом.

onActivityCreated()

Вызывается, когда метод onCreate(), принадлежащий операции, возвращает управление.

onDestroyView()

Вызывается при удалении иерархии представлений, связанной с фрагментом.

onDetach()

Вызывается при разрыве связи фрагмента с операцией.

Зависимость жизненого цикла фрагмента от содержащей его операции иллюстрируется рисунком 3. На этом рисунке можно видеть, что очередное состояние операции определяет, какие методы обратного вызова может принимать фрагмент. Например, когда операция принимает свой метод обратного вызова onCreate(), фрагмент внутри этой операции принимает всего лишь метод обратного вызова onActivityCreated().

 

Файловая система и карта памяти.

 

 

В операционной системе Android можно сохранять файлы непосредственно на мобильном устройстве или на внешнем носителе данных, например на карте памяти. По умолчанию другие приложения не могут обращаться к этим файлам. Операции ввода-вывода в Android аналогичны операциям в стандартных Java-программах. Android реализует потоки с помощью иерархии классов, определенных в пакете java.io (рис. 16.1). Кроме этих классов в пакете java.io определено множество специализированных классов для операций ввода-вывода.

Чтобы прочитать данные из файла, необходимо вызвать метод Context.openFileInput() и передать в качестве параметра имя файла. Метод возвращает стандартный Java-объект FileInputStream.

Чтобы записывать в файл, необходимо вызвать метод Context.openFileOutput(),

передав ему имя файла как параметр. Этот метод возвращает объект

FileOutputStream. Вызов этих методов для данного файла из другого приложения не

будет работать, обратиться вы можете только к своим файлам.

Если имеется статический файл, который надо упаковать с вашим приложением вовремя компиляции проекта, можно сохранить его в каталоге проекта в папке

res/raw/, а затем открыть его методом Resources.openRawResource(). Этот метод возвращает объект InputStream, который можно использовать для чтения файла.

Файловые системы Android

YAFFSИYAFFS2

СоздателемфайловойсистемыYaffs (YetAnotherFlashFileSystem) являетсяЧарльзМэннинг, родомизНовойЗеландии. Данная ФС предназначается для организации работы флеш-накопителей и оперативной памяти. Основным ее преимуществом является повышение сроков эксплуатации модулей памяти, так как система автоматически пропускает ячейки, предназначенный для однократной записи. Yaffs2 использовалась для организации работы внутренней памяти гаджетов Android версии 2.2 и 2.3.

VFAT

Vfat не является полноценной самостоятельной файловой системой, а представляет собой расширение FAT. Доработанная версия позволяет сохранять файлы с длинными именами, но по всем остальным характеристикам является морально устаревшей. Vfat может использоваться на картах памяти, а операционные системы на базе ОС Андроид полностью их поддерживают. В основном, это файловая система флешки android.

F2FS

F2FS (Flash Friendly File System) – файловая система, которая предназначена в первую очередь на работу с флеш-памятью и SSD-накопителями. Разработал ее сотрудник компании Samsung, Ким Чэ Гык, а после публикации исходного кода она была доработана другими инженерами компании. F2FS может использоваться на картах памяти SD/MMC, а также со множеством других типов памяти. Для полноценной кастомизации существует целый набор утилит. Из преимуществ можно отметить хорошую гибкость в настройке, высокие показатели сохранения жизненного цикла блоков памяти, а также хранение данных в виде журнала. Хорошую скорость работы обеспечивает то, что индексы данных сохраняются в оперативную память, а поддержка F2FS включена в ядро Linux, начиная с версии 3.8.

EXT2-EXT4

Ext2-Ext4 – основные файловые системы Android. Именно они используются для организации работы внутреннего хранилища на большинстве современных гаджетов, и если первые устройства работали под версиями Ext2, то начиная с версии Android 4, основными стали Ext3, а потом и Ext4. Основное отличие между вариациями заключается в наличие журналирования. То есть, если в процессе записи или чтения данных происходит системный сбой, например, неожиданное отключение питания, не произойдет потери или повреждения данных.

UBIFS

UBIFS – файловая система, предназначенная исключительно для памяти по типу NAND (флеш-накопители, применяемые на мобильных устройствах). Ее основное преимущество — это снижение износа носителей данных. Состоит такая ФС из двух слоев — UBI (отвечает за работу и связь с физическим носителем) и UBIFS (сама файловая система). Разработчиком UBIFS является компания Nokia, но встретить подобную файловую систему можно не только на оригинальных устройствах от данного производителя, но и на других гаджетах, например, китайского изготовления.

SAMSUNG RFS

Samsung RFS – разработанная корейской компанией Samsung файловая система для устройств на базе ОС Linux, а одной из разновидностей последнего является Android. Предназначается фирменная ФС для флеш-памяти NAND и используется во многих гаджетах собственного производства. Для облегчения работы с файлами используется таблица формата FAT, что позволяет максимально просто произвести запись файлов на флэш-память и их чтение. Специфика RFS учитывает особенности NAND накопителей, что позволяет увеличить длительность их эксплуатации, а также снизить вероятность потери данных при системных сбоях и случайных отключениях питания.

SDCARDFS

Компания Google долгое время использовала в своих устройствах файловую систему FUSE, но она имела ряд недостатков, среди которых необходимо отметить малое количество памяти, выделяемой под приложения под приложения, а также большое потребление хранилища при кэшировнии данных. На замену FUSE пришла SDCardFS, которая решала эти проблемы, но представляла собой своего рода оболочку, эмулирующую FAT32. Карта памяти – это накопительное устройсто, которое используется лля записи и хранения цифровой информации (фото,музыки, документов и др.)

 

 

 

Существуют 3 формата карт памяти:SD, SDHC, SDXC, которые в свою очередь разделяются на классы по объемам памяти и размерам:

1. SDиmicroSD– самый распространенный формат,т.к. работает во всех девайсах, которые поддерживают форматы SDHC или SDXC. Может понадобиться  Card Reader картридер. Объем памяти до 4 Гб.

2. SDHCиmicroSDHC – не совместим с устройствами, поддерживающими формат SD карты. Объем памяти до 32 Гб

3. SDXCиmicroSDXC–самый последний тип карты памяти, объем памяти до 2 Тб.

Важным критерием при выборе карты памяти является, является их скорость записи файлов и обмена информацией с устройством. Информациюпро скорость SD – карт можно найти на самой карте памяти, она обозначается либо в классах, например SDClass 2, SDClass 4, SDClass10. Либо, скорость карты памяти может быть выражена в специальных множителях: 13х, 16х, 40х, 1000х и выше. Также существую карты памяти SDHC1/SDHC2 и SDXC1/SDXC2 с повышенной скоростью  - UHS (UltraHighSpeed). Такие карты работают на более быстрой шине UHS.

В стандарте UHS предусмотрено два скоростных класса:

· UHS Speed Class 1: минимальная скорость при записи 10 МБ/сек.

· UHS Speed Class 3: минимальная скорость при записи 30 МБ/сек.

В стандарте UHS разработано два формата передачи данных — UHS-I и UHS-II.


Дата добавления: 2018-06-27; просмотров: 314; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!