Similar presentations:
Intent'ы, IntentFilter'ы и BackStack Activity
1. Intent, IntentFilter и Activity Back Stack
Евгений ЕлисеевВедущий разработчик, «Лаборатория Касперского»
2.
Что такое Intent3. Что такое Intent
Intent – намерение (англ.)Запустить другое приложение
Открыть файл
Перейти на другой экран
Явные (explicit) и неявные (implicit)
3
4. Из чего состоит Intent
Действие – action (ACTION_VIEW, ACTION_EDIT и т.д.)
Категория – category (CATEGORY_LAUNCHER, CATEGORY_BROWSABLE)
Данные – data
Дополнительные параметры - extras
4
5. Переход в другое «окно» своего приложения
56. Запуск другого приложения
67. Выбор приложения для запуска
78. Запуск сервиса
89.
Intent Filter10. Intent Filter
Указываются в AndroidManifest.xmlactivity
service
receiver
10
11. Intent Filter
Intent-Filter – это публичный интерфейс activity.11
12. Intent Filter
Intent-Filter можно не указывать, если в нём нет необходимости.12
13. Intent Filter
BroadcastReceiver можно зарегистрировать в runtime.13
14.
Tasks и Back Stack15. Tasks и Back Stack
Task – это стек из Activity.Activity A
B
C
15
16. Tasks и Back Stack
В одном таске может быть несколько Activity одногокласса.
Запуск Activity A
Запуск Activity B
Запуск ещё одной Activity A
16
Activity B
A
17. Tasks и Back Stack
launchMode=“singleTop”Activity B
A
Start Activity A
Start Activity B
Start Activity B
Start Activity B
17
18. Tasks и Back Stack
launchMode=“singleTask”Start Activity A (singleTask)
Start Activity B
Start Activity C с флагом NEW_TASK
Start Activity A из Activity C
18
Activity A
B
Activity C
Task 1
Task 2
19. Tasks и Back Stack
Запуск в отдельном таске:19
20. Tasks и Back Stack
launchMode=“singleInstance”Start Activity A (singleInstance)
Start Activity B
Start Activity C с флагом NEW_TASK
Start Activity A из Activity C
20
Activity A
Activity B
Activity C
Task 1
Task 2
Task 3
21.
PendingIntent22. PendingIntent
PendingIntent позволяет передать Intent другому процессу для последующего запуска.22
23. TaskStackBuilder
Можемсконструировать стек
таска вручную.
23
24. Спасибо!
СПАСИБО!Kaspersky Lab HQ
39A/3 Leningradskoe Shosse
Moscow, 125212, Russian Federation
Tel: +7 (495) 797-8700
www.kaspersky.com