HTML

android

Friss topikok

Linkblog

Archívum

Android fejlesztés - az Intent objektum

2009.06.29. 00:38 parzes

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

 

4 komment

Címkék: fejlesztés android intent

süti beállítások módosítása