Android. Программирование для профессионалов. 4-е издание


tring(R.string.new_pictures_title))



Download 21,53 Mb.
Pdf ko'rish
bet454/485
Sana13.07.2022
Hajmi21,53 Mb.
#787165
1   ...   450   451   452   453   454   455   456   457   ...   485
Bog'liq
Android Programmirovanie dlya professionalov 4-e izdanie 2020 Fillips Styuart Marsikano Gardner

tring(R.string.new_pictures_title))
.setContentText(resources.getSt
ring(R.string.new_pictures_text))
.setContentIntent(pendingIntent
)
.setAutoCancel(true)
.build()
val 
notificationManager 
=
NotificationManagerCompat.from(context)
notificationManager.notify(0,
notification)
}
return Result.success()
}
}
Давайте пройдемся по этому коду сверху вниз.
Мы используем класс 
NotificationCompat
для работы с
уведомлениями как на устройствах до Oreo, так и после Oreo.
NotificationCompat.Builder
принимает ID канала и
использует его для установки параметра канала уведомления,
если пользователь запустил приложение на Oreo или выше.
Если у пользователя запущена более ранняя версия Android,
NotificationCompat.Builder
игнорирует канал. (Обратите
внимание, что идентификатор канала, который вы передаете
здесь, происходит от константы 
NOTIFICATION_CHANNEL_ID
,
которую вы добавили в 
PhotoGalleryApplication
.)
В листинге 27.9 перед созданием канала вы проверили
версию SDK, потому что AppCompat API для создания канала не
существует. Здесь это не нужно делать, потому что


NotificationCompat
в AppCompat выполняет всю работу по
проверке версии сборки, сохраняя ваш код в чистоте и красоте.
Это одна из причин, по которой нужно использовать версию
AppCompat Android API, когда это доступно.
Текст уведомления и значок мы настраиваем с помощью
функций 
setTicker 
(CharSequence)
и
setSmallIcon(Int)
. (Ресурс значка, который вы используете,
входит во фреймворк Android, обозначается классификатором
имен 
пакетов
androidвandroid.R.drawable.ic_menu_report_image
, так
что вам не нужно переносить изображение значка в папку
ресурса.)
После этого мы настроим внешний вид 
Notification
на
панели. Можно создать полностью пользовательский внешний
вид, но проще всего использовать стандартный вид
уведомления, в котором есть иконка, заголовок и текстовая
область. Иконка берется из функции 
setSmallIcon(Int)
. Для
установки заголовка и текста вызываются функции
setContentTitle(CharSequence)
и
setContentText(CharSequence)
соответственно.
Затем мы задаем, что произойдет, когда пользователь
нажмет на уведомление. Это делается с помощью объекта
PendingIntent
. Объект 
PendingIntent
, который вы
передаете в 
setContentIntent(PendingIntent)
, будет
уничтожен, когда пользователь нажмет на уведомление на
панели. Вызов функции 
setAutoCancel(true)
немного
корректирует это поведение: уведомление также будет удалено
из ящика уведомлений, когда пользователь нажмет на него.
Наконец, мы получаем экземпляр 
NotificationManager
из текущего контекста (
NotificationManagerCompat.from
)
и вызываем функцию 
NotificationManager.notify(...)
для размещения вашего уведомления.


Целый параметр, который вы передаете в функцию
notify(...)

является 
идентификатором 
вашего
уведомления. Он должен быть уникальным во всем вашем
приложении, но может быть использован повторно. Одно
уведомление заменит другое тем же самым идентификатором,
который все еще находится в ящике уведомлений. Если нет
существующего уведомления с идентификатором, система
покажет новое уведомление. Именно так вы реализуете
индикатор 
выполнения 
или 
другие 
динамические
визуализации.
И все. Запустите ваше приложение, и в конце концов в
строке состояния появится значок уведомления (рис. 27.5)
(лучше очистить поисковые запросы, чтобы ускорить процесс).



Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   450   451   452   453   454   455   456   457   ...   485




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish