Активності та задачі
Купівля Поділитися
Інформація про ап Повний текст
Пошук Список новин
Почитати новини
Пропозиції на
головній сторінці
Встановити новий ап
Читаємо http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html
12.
Активності та задачі
Купівля Поділитися
Інформація про ап Повний текст
Пошук Список новин
Почитати новини
Пропозиції на
головній сторінці
Встановити новий ап
Активність
Читаємо http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html
Активність - GUI
setContentView(view)
LinearLayout TextView
TextView
Image
TextView RelativeLayout
View TextView
RelativeLayout
… TextView
Image
ImageView TextView TextView View TextView
Дерево може бути описане за допомогою XML
16.
Ресурси
• Графіка (drawable)
• Тексти (string)
• Стилі (style)
• Розмітка (layout)
• та ще дуже багато
(dimen, color, string-array, …)
Читаємо http://developer.android.com/guide/topics/resources/index.html
17.
Конфігурація
• Орієнтація екрану
• Локаль
• Оператор
• Розмір екрану
• Густина пікселів
• …
18.
Життєвий цикл активності
•Пам’ятаємо про:
– активність має стан, який змінюється під час
роботи користувача з нею
– активність може бути знищена за ініціативи
системи
– при цьому потрібно зберегти стан
– View вміють зберігати свій стан
• Найбанальніший приклад знищення
активності: переворот екрану (зміна
конфігурації).
19.
Фрагменти
• Великий екран– великі зміни
• Основний великий будівельний блок
вашого апа
• Ще цікавіший життєвий цикл
• Взаємодію між фрагментами слід
здійснюватися через активність
Активація компонентів
• Intent
– data URI, type дані, над якими працюємо
– action дія, яку потрібно виконати
– extras додаткові параметри (ключ - значення)
• Набрати номер:
data = „tel:+38093XXXXXXX‟
action = Intent.ACTION_VIEW
або Intent.ACTION_CALL (вимагає окремого дозволу)
• Перейти до карти
data = „geo:49.91667,36.31667?z=12‟
action = Intent.ACTION_VIEW
• Відправити листа, твіт, пост у фейсбук:
Intent.ACTION_SEND + extras
25.
Маніфест
• Основна функція:описати власні
компоненти та вказати, як вони можуть
активуватися ззовні
• Вказує вимоги вашого апа до апаратури та
версії Android
• Перелічує дозволи, які користувач повинен
буде надати апу
Сервіси
• Не пов’язаніз UI напряму
• Фонові задачі: програвання
музики, завантаження даних
• Як правило, взаємодію з API якогось
сервера бажано реалізовувати через сервіс
• Простіший життєвий цикл (суб’єктивно!)
• Два типи: з підв’язкою, виконання команд
Контент-провайдери query
insert
• Надають доступ до вашого update
набору даних delete
content://my.content.authority/place/345
authority, визначається в маніфесті
• Інші компоненти працюють з ними через
ContentResolver
• Приклад стандартного провайдера:
контакти
Broadcast Receiver
• Зміначасового поясу
• Завантаження системи
• Вимкнення телефону
Для того, щоб зробити розумні сервіси:
• Зміна стану заряду батареї
• Підключення «зарядки»
Головний потік таасинхронні задачі
• Виклики методів життєвого циклу завжди
виконуються в основному потоці (слідкуйте
за ANR!)
• AsyncTask – винесення операції в окремий
потік
• AsyncQueryHandler – запити до контент
провайдера в окремому потоці
• Все це працює через Handler
35.
Користуйтеся StrictMode!
StrictMode.setThreadPolicy(
new StrictMode.ThreadPolicy.Builder()
.detectAll()
.penaltyLog()
.build()
);
StrictMode.setVmPolicy(
new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.build()
);