Az alábbiakban az android hivatalos fejlesztői oldaláról fordítottam le dolgokat, még nem teljesen értem az egészet, remélem ez is hasznára válhat valakinek.
Az Intent Objektumok
Az Intent az event-driven fejlesztésben megszokott event-hez hasonló objektum:
http://developer.android.com/guide/topics/fundamentals.html
Komponensek aktiválása: intentek
A content providereket a ContentResolverből aktiváljuk. Az Activityket, aszinkron üzenetekkel: az Intentekkel.
Ezek olyan Intent objektumok, amelyek az üzenet tartalmát hordozzák. Activityk és Servizek aktiválásakor
tartalmazza a végrehajtandó actiönt, és meghatározza a használandó adat URI-ját, többek között. Például
szállíthat egy kérést egy Activity számára, hogy megjelenítsen egy képet a felhasználó számára, vagy hogy
a felhasználó szerkeszthessen egy szöveget. Broadcast receivereknél, az Intent objektum nevezi meg a
bejelentendő actiont. Például bejelentheti az érdekelt részeknek, hogy le lett nyomva a kamera gombja.
Különböző módszerek léteznek minden típusú komponens aktiválására:
- Activityk: Egy activity egy Intent objektum átpasszolásával indul (vagy kezd új dologba). Az Intent
objektumot a Context.startActivity() vagy a Activity.startActivityForResult()
meghívásával. A válaszoló activity megnézheti a kezdeti intentet, ami az elindulását okozta, a getIntent()
metódus segítségével. Az Android meghívja az activity onNewIntent() metódusát, hogy átadja a következő intenteket.
Egy activity gyakran indít egy következőt. Ha választ vár az általa elindított activitytől, a startActivityForResult()-ot hívja meg a startActivity() helyett. Például, ha elindít egy activityt, amiben a felhasználó
egy fényképet készíthet, valószínűleg vissza akarja kapni az elkészült fotót. Az eredmény egy intent objektumban szállítódik, ami az activity onActivityResult() metódusában adódik át.
http://developer.android.com/reference/android/content/Intent.html
Az intentek műveletek absztrakt leírásai, összekötők az activityk közt. Részei:
action -- Az általános action amit végre kell hajtani, pl ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, stb
data -- Az adat amit használni akarunk, pl egy az adatbázisban lévő személy rekordja, Uri-ként megadva.
példák:
ACTION_VIEW content://contacts/1 -- Megmutatja az "1"es azonosítójú személyről lévő információkat.
ACTION_DIAL content://contacts/1 -- Megjeleníti a tárcsázót, az előbbi személy adataival kitöltve.
ACTION_VIEW tel:123 -- Megjeleníti a tárcsázót, az adott telefonszámmal kitöltve. A VIEW action az előbbi példákból láthatóan mindig megpróbálja a kapott URI adatokhoz leginkább illeszkedő műveletet végrehajtani.
ACTION_DIAL tel:123 -- Megjeleníti a tárcsázót, az adott telefonszámmal kitöltve.
ACTION_EDIT content://contacts/1 -- Szerkesztésre megnyitja az "1"es azonosítójú személyről lévő információkat.
- ACTION_VIEW content://contacts/ -- Megjeleníti a kontaktlistát, amit aztán a felhasználó böngészhet. Ez a példa egy tipikus top-level bejegyzés a Contacts alkalmazásba, mely megjeleníti az emberek listáját. Egy adott személy kiválasztásakor az eredmény egy új intentben fog megjelenni { ACTION_VIEW content://contacts/N } használandó ennek a személynek a megjelenítéséhez.
Ezekhez az attibútumokhoz egy rakás másodlagos attribútum jöhet még hozzá:
category -- További információ a végrehajtandó actionről. Például a CATEGORY_LAUNCHER azt jelenti, hogy meg kell jelennie a Launcher-ben top-level alkalmazásként, míg a CATEGORY_ALTERNATIVE azt jelenti, hogy benne kell lennie actionök egy alternatív listájában, amit a felhasználó végrehajthat az adatokon.
type -- Megadja az intent adat MIME type-ját. Alapesetben ez az információ magával az adattal együtt szállítódik. Ennek a paraméternek a megadásával a kiértékelés nem történik meg, helyette ez az explicit megadott érték lesz figyelembevéve.
component -- Explicit módon megadja az intent által használandó komponens osztály nevét. Alapesetben ez az intent által hordozott többi információból(az action, data/type, és a category-kből) derülne ki, és a passzoló komponenshez kerülne alapból, amelyik kezelni tudjas. Ha ez az attribútum be van állítva, ezek a kiértékelések nem történnek meg, a megadott osztály lesz használva. Ennek az attribútumnak a beállítása az összes többi attribútum beállítását feleslegessé teszi.
extras -- Ez egy Bundle az összes többi esetleges információhoz. Ezt lehet használni ha bővebb információt akarunk adni a komponensnek. Például, ha van egy action-ünk ami emailt küld, akkor ennek az attribútumnak a segítségével adhatunk meg extra adatokat úgy mint subjefct, body stb
a jobb megértéshez nekem ez segitett:Intent