За какви книги за Android мълчат

какви

Съдържанието на статията

Чудили ли сте се някога как работата на един програмист се различава, например, от работата на инженер-конструктор или инженер по сигурността (спокойно, няма да помним здравината на материалите)? Първото нещо, което идва на ум, е правото на грешки: наистина, процесът на тестване (отстраняване на грешки) отнема значително време във всеки проект. Ако продължите да мислите, можете да добавите тук динамиката на професията.

Инженерните специалности се основават на техники, разработени преди десетилетия - например методът на крайните елементи скоро ще навърши 70 години и все още не е загубил своята актуалност. В програмирането всичко се променя със скорост, близка до скоростта на светлината. И трябва постоянно да изучаваме нещо, да опитваме решения на други хора, да измисляме собствени велосипеди, да променяме алгоритми, да въвеждаме купища нови технологии - с една дума, да участваме в състезание без финална линия. И ако умните книги, изпитани във времето, помагат на инженерите в тяхната работа, тогава в нашия случай намирането на информация, понякога дори в официални източници, може да бъде много проблематично. Не вярвайте? Добре тогава, добре дошли в [A]ndroi[D]...

Уиджет и документация

Днес ще разгледаме Android и неговите джаджи – само практика, без теория. За последното ви препращам към скорошна статия, в която обсъдихме подробно процеса на създаване на „хакерска“ джаджа.

И така, джаджата е реализация на излъчващ приемник, чиято рамка е представена по-долу:

Когато потребителят постави първото копие на изпълнимия модул на началния екран, методът onEnabled() се задейства, след което се извиква сдвоеният onDisabled(). Методът onDeleted() се извиква всеки път, когато потребителят плъзга изгледаекземпляр на джаджата в кошчето.

Методът onUpdate() в цикъла актуализира всички екземпляри на джаджи чрез идентификатори, съхранени в масива, като изтегля updateAppWidget().

Всичко по-горе може да се намери в официалната документация на Google, както и във всяка книга за програмиране на Android. Типична джаджа е показана на фиг. 1.

Android
Фиг. 1. Редовна джаджа

Джаджа срещу програмист

Като загрявка предлагам да забравим половината от написаното, защото не става! Съзнателно зададох печат за отстраняване на грешки на всички методи. Като стартирате кода в емулатор или на реално устройство, можете лесно да проверите, че нито onEnabled, нито onDisabled никога не се извикват в Android 4.4 и по-нови версии! (За да не бъда голословен, по-нататък тествам кода на устройства с Android 4.4, 5.1, 6.0.)

Някой ще каже, че това е коригирано в 5-та версия на мобилната операционна система. Да, коригирано, но е твърде рано да се прави отстъпка от Android 4. Освен това подобни неща не трябва да се откриват от програмиста емпирично.

Джаджа срещу здрав разум

Една джаджа може да бъде много по-полезна, ако можете да я персонализирате, преди да я добавите към началния екран. Всяка дейност в рамките на приложението може да действа като конфигурационен екран, стига да има филтър за намерения за дейността APPWIDGET_CONFIGURE в манифеста:

За да присвоите тази дейност на изпълним модул, трябва да го добавите към съответния таг appwidget-provider, като използвате атрибута configure, като посочите пълното име на пакета:

Дейността по настройка не се различава от нормалната дейност, но трябва да посочи RESULT_OK като резултат и да върне намерение с допълнителен параметър, EXTRA_APPWIDGET_ID, който е идентификаторът на изпълнимия модул. В противен случай се счита, че потребителят е отменил решението си (например кликнал„Назад“) и джаджата няма да бъде добавена.

Продължава достъпно само за абонати

Вариант 2. Купете един материал