Iniciador d'activitat (ActivityStarter)
Activitats
En la terminologia del sistema operatiu Android, cada app incorpora una o diverses activitats. Cada activitat implementa una pantalla d'una app. Per exemple, una de les activitats d'una app pot implementar una pantalla de preferències, mentre que una altra activitat implementa una pantalla de selecció de fotos.
La majoria de les apps contenen diverses pantalles i, per tant, inclouen diverses activitats. Cada app té una activitat principal, que és la primera pantalla que apareix quan l'usuari inicia l'app. Cada activitat pot iniciar una altra activitat per tal de realitzar diferents accions.
Per exemple, l'activitat principal d'una app de correu electrònic pot proporcionar la pantalla que mostra una bústia d'entrada. A partir d'aquí, l'activitat principal podria iniciar altres activitats que proporcionen pantalles per a tasques com escriure correus electrònics i obrir correus electrònics individuals.
Intents
Una app pot iniciar una activitat mitjançant un intent. Hi ha 2 tipus d'intent:
- Implícits: La crida per iniciar l'activitat només inclou el tipus d'acció que es vol realitzar i la referència a l'objecte (imatge, so, mapa …) sobre el què es realitza l'acció. Així, el sistema operatiu obre l'activitat de l'app predeterminada per al tipus d'acció indicat amb l'objecte referenciat.
- Explícits: La crida per iniciar l'activitat concreta l'app i l'activitat que es vol iniciar i la referència a l'objecte que rebrà l'activitat.
Iniciador d'activitat
El component no-visible Iniciador d'activitat (ActivityStarter) d'App Inventor permet fer un intent per iniciar una activitat determinada, normalment d'una app diferent. Es troba en la paleta Connectivitat:
Les propietats més importants d'aquest component són:
- Action: tipus d'acció a realitzar amb l'objecte referenciat.
- ActivityClass: nom de la classe de l'activitat que s'ha d'iniciar.
- ActivityPackage: nom del paquet de l'app que s'ha d'iniciar.
- DataUri: referència a l'objecte que es vol passar.
Intents implícits
Només s'han d'assignar valors a les propietats Action i DataUri de l'Iniciador d'activitat amb blocs o en el Dissenyador. Per exemple, per obrir una pàgina web amb el navegador predeterminat fent clic en un botó, heu d'assignar valors a aquestes propietats i cridar la funció per iniciar l'activitat:
L'acció android.intent.action.VIEW és la més genèrica en Android i l'única disponible en iOS. Es pot aplicar a objectes diversos, com pàgines web, documents, mapes … La majoria d'apps inclouen aquest intent i saben com gestionar els objectes rebuts.
En Android hi ha una gran varietat d'intents comuns que es poden utilitzar.
Intents explícits
En Android es poden utilitzar intents que obrin una activitat concreta d'una app instal·lada en el dispositiu. Cal conèixer el nom del paquet de l'app (ActivityPackage) i la classe corresponent a l'activitat que implementa l'app (ActivityClass).
Aquesta informació s'ha d'incloure abans de fer la crida per iniciar l'activitat. Per exemple, per obrir una pàgina web amb el navegador Chrome (ignorant el navegador predeterminat que hagi definit l'usuari):