🗊Презентация Loaders and ContentProviders

Нажмите для полного просмотра!
Loaders and ContentProviders, слайд №1Loaders and ContentProviders, слайд №2Loaders and ContentProviders, слайд №3Loaders and ContentProviders, слайд №4Loaders and ContentProviders, слайд №5Loaders and ContentProviders, слайд №6Loaders and ContentProviders, слайд №7Loaders and ContentProviders, слайд №8Loaders and ContentProviders, слайд №9Loaders and ContentProviders, слайд №10Loaders and ContentProviders, слайд №11Loaders and ContentProviders, слайд №12Loaders and ContentProviders, слайд №13Loaders and ContentProviders, слайд №14Loaders and ContentProviders, слайд №15Loaders and ContentProviders, слайд №16Loaders and ContentProviders, слайд №17Loaders and ContentProviders, слайд №18Loaders and ContentProviders, слайд №19Loaders and ContentProviders, слайд №20Loaders and ContentProviders, слайд №21

Вы можете ознакомиться и скачать презентацию на тему Loaders and ContentProviders. Доклад-сообщение содержит 21 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Зачем нужны? Как использовать?
Описание слайда:
Зачем нужны? Как использовать?

Слайд 2





Что такое ContentProvider?
Описание слайда:
Что такое ContentProvider?

Слайд 3





Что такое Loader?
Описание слайда:
Что такое Loader?

Слайд 4





Совместная работа ContentProvider-а и Loader-а
CursorLoader перезапрашивает данные при правильном использовании notifiChange и setNotificationUri
Метод setNotificationUri класса Cursor позволяет установить URI данных, изменение которых нужно отслеживать
В методах insert, update, delete вызываем метод notifyChange класса ContentResolver с URI элемента или элементов, подвергшихся изменению
При обновлении потомка, обновляются родители
content://ru.ilapin.recyclerviewandcontentprovider.provider/cities/65 
обновит
content://ru.ilapin.recyclerviewandcontentprovider.provider/cities
Работа осуществляется через ContentResolver
Описание слайда:
Совместная работа ContentProvider-а и Loader-а CursorLoader перезапрашивает данные при правильном использовании notifiChange и setNotificationUri Метод setNotificationUri класса Cursor позволяет установить URI данных, изменение которых нужно отслеживать В методах insert, update, delete вызываем метод notifyChange класса ContentResolver с URI элемента или элементов, подвергшихся изменению При обновлении потомка, обновляются родители content://ru.ilapin.recyclerviewandcontentprovider.provider/cities/65 обновит content://ru.ilapin.recyclerviewandcontentprovider.provider/cities Работа осуществляется через ContentResolver

Слайд 5





Системные ContentProvider-ы на примере ContactProvider-а 1
Используя информацию из класса-контракта узнать URI данных
ContactsContract.Contacts.CONTENT_URI
Реализовать интерфейс LoaderManager.LoaderCallbacks
В методе onCreateLoader инстанциировать Loader
Описание слайда:
Системные ContentProvider-ы на примере ContactProvider-а 1 Используя информацию из класса-контракта узнать URI данных ContactsContract.Contacts.CONTENT_URI Реализовать интерфейс LoaderManager.LoaderCallbacks В методе onCreateLoader инстанциировать Loader

Слайд 6





Системные ContentProvider-ы на примере ContactProvider-а 2
В методе onLoadFinished написать код обрабатывающий получение данных из Loader-а
В методе onLoaderReset написать код обрабатывающий сброс Loader-а
Описание слайда:
Системные ContentProvider-ы на примере ContactProvider-а 2 В методе onLoadFinished написать код обрабатывающий получение данных из Loader-а В методе onLoaderReset написать код обрабатывающий сброс Loader-а

Слайд 7





Системные ContentProvider-ы на примере ContactProvider-а 3
Вызвать getLoaderManager().initLoader(LOADER_ID, null, this) и передать в него идентификатор Loader-а (int-овое число), Bundle с аргументами (может быть null), и реализацию интерфейса
Описание слайда:
Системные ContentProvider-ы на примере ContactProvider-а 3 Вызвать getLoaderManager().initLoader(LOADER_ID, null, this) и передать в него идентификатор Loader-а (int-овое число), Bundle с аргументами (может быть null), и реализацию интерфейса

Слайд 8





Реализация ContentProvider-а 1
На примере списка городов
Создать класс-наследник ContentProvider-а
Реализовать onCreate для легковесной инициализации (БД, UriMatcher)
Описание слайда:
Реализация ContentProvider-а 1 На примере списка городов Создать класс-наследник ContentProvider-а Реализовать onCreate для легковесной инициализации (БД, UriMatcher)

Слайд 9





Реализация ContentProvider-а 2
Контракт
Описание слайда:
Реализация ContentProvider-а 2 Контракт

Слайд 10





Реализация ContentProvider-а 3
Реализовать query для получения данных
Описание слайда:
Реализация ContentProvider-а 3 Реализовать query для получения данных

Слайд 11





Реализация ContentProvider-а 4
Реализовать insert для вставки данных, принимает Uri данных и данные, возвращает Uri сохранённых данных, getContext().getContentResolver().notifyChange. В нашем случае пустой.
Реализовать delete для удаления данных, принимает Uri данных, условия выборки для удаления, возвращает количество затронутых записей, notifyChange. В нашем случае пустой.
Описание слайда:
Реализация ContentProvider-а 4 Реализовать insert для вставки данных, принимает Uri данных и данные, возвращает Uri сохранённых данных, getContext().getContentResolver().notifyChange. В нашем случае пустой. Реализовать delete для удаления данных, принимает Uri данных, условия выборки для удаления, возвращает количество затронутых записей, notifyChange. В нашем случае пустой.

Слайд 12





Реализация ContentProvider-а 5
Реализовать update для обновления данных, принимает Uri данных, данные, условия выборки для обновления, возвращает количество затронутых записей, notifyChange
Описание слайда:
Реализация ContentProvider-а 5 Реализовать update для обновления данных, принимает Uri данных, данные, условия выборки для обновления, возвращает количество затронутых записей, notifyChange

Слайд 13





Реализация ContentProvider-а 6
Реализовать getType
Описание слайда:
Реализация ContentProvider-а 6 Реализовать getType

Слайд 14





Реализация ContentProvider-а 7
Реализовать openAssetFile
Описание слайда:
Реализация ContentProvider-а 7 Реализовать openAssetFile

Слайд 15





Реализация ContentProvider-а 8
В ContentResolver-е можно регистрировать ContentObserver
Описание слайда:
Реализация ContentProvider-а 8 В ContentResolver-е можно регистрировать ContentObserver

Слайд 16





Реализация ContentProvider-а 9
Объявить провайдер в манифесте
Описание слайда:
Реализация ContentProvider-а 9 Объявить провайдер в манифесте

Слайд 17





Права доступа и получение файлов через ContentProvider-ы
Доступ к ContentProvider-у можно получать не только из приложения, в котором он реализован, но и из других приложений
android:exported=“true”
Можно ограничивать доступ, указывая
android:readPermission="ru.ilapin.recyclerviewandcontentprovider.READ_CITIES“
Для получения файла нужно реализовать метод openAssetFile или подобный ему (openFile)
В методе getType добавить MIME для файла
Описание слайда:
Права доступа и получение файлов через ContentProvider-ы Доступ к ContentProvider-у можно получать не только из приложения, в котором он реализован, но и из других приложений android:exported=“true” Можно ограничивать доступ, указывая android:readPermission="ru.ilapin.recyclerviewandcontentprovider.READ_CITIES“ Для получения файла нужно реализовать метод openAssetFile или подобный ему (openFile) В методе getType добавить MIME для файла

Слайд 18





Реализация Loader-а на примере AsyncTaskLoader-а 1
Создать класс-наследник AsyncTaskLoader-а
Реализовать по крайней мере методы loadInBackground и onStartLoading
Описание слайда:
Реализация Loader-а на примере AsyncTaskLoader-а 1 Создать класс-наследник AsyncTaskLoader-а Реализовать по крайней мере методы loadInBackground и onStartLoading

Слайд 19





Реализация Loader-а на примере AsyncTaskLoader-а 2
В loadInBackground размещается основная «тяжёлая» логика загрузки, метод будет выполняться не в главном потоке
Описание слайда:
Реализация Loader-а на примере AsyncTaskLoader-а 2 В loadInBackground размещается основная «тяжёлая» логика загрузки, метод будет выполняться не в главном потоке

Слайд 20





Реализация Loader-а на примере AsyncTaskLoader-а 3
onStartLoading должен содержать минимальную логику по запуску загрузки (вызов forceLoad)
Описание слайда:
Реализация Loader-а на примере AsyncTaskLoader-а 3 onStartLoading должен содержать минимальную логику по запуску загрузки (вызов forceLoad)

Слайд 21





Спасибо за внимание!
Спасибо за внимание!
Описание слайда:
Спасибо за внимание! Спасибо за внимание!



Похожие презентации
Mypresentation.ru
Загрузить презентацию