Broadcast Service Widget



Hasonló dokumentumok
Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver

ANDROID ALKALMAZÁSFEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS

UI megismerése, különböző felbontások támogatása, használati jogok kérése


3. Egyszerű komponensek

I. 288.: Utcai WiFi térkép

Android fejlesztés Alapok. Készítette: Kálmán Kornél (KAKQAAT.SZE)

ANDROID ALKALMAZÁSFEJLESZTÉS

Android Wear programozás. Nyitrai István

Újdonságok a Google műhelyéből. Péter Ekler

Android fejlesztés Alapok. Tanács Attila, Kálmán Kornél

Felhasználói felület megismerése, különböző felbontások támogatása

strings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string

RIA Rich Internet Application

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

Alap számológép alkalmazás

UI megismerése - 2. rész Adattárolás

Mobil Informatikai Rendszerek

ANDROID ALKALMAZÁSFEJLESZTÉS

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Programozási nyelvek Java

Szoftvertechnológia alapjai Java előadások

Mobil Informatikai Rendszerek

Concurrency in Swing

Android Pie újdonságai

Google Maps használata OSM, mint alternatív térkép

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

ANDROID ALKALMAZÁSFEJLESZTÉS

Mobil Informatikai Rendszerek

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

Kommunikáció - Wi-Fi, Mobil internet - Bluetooth - GSM / GPRS és SMS - NFC

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

Szoftverfejlesztés a Google Android OS-re (Android 3.0, API level 11)

Mobil Informatikai Rendszerek

Konkurens TCP Szerver

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Android 5.0.

A SZOFTVERTECHNOLÓGIA ALAPJAI

Mobil Informatikai Rendszerek

Grafikus felhasználói felületek, eseménykezelés

Termékjellemzők. Modell Kijelző Akkumulátor Töltés Üzemi hőmérséklet Készenléti idő Kezelés Vízállóság

Google Maps V2. OpenStreetMap, Mapsforge

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.

Grafikus felületek készítése 1.

Java programozási nyelv 4. rész Osztályok II.

Alkalmazásfejlesztés Android platformra

és az instanceof operátor

Szálkezelés Rajzolás képernyőre Bevitel kezelése - Érintő képernyő - Billentyűzet

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Kommunikáció Androidon GSM hívás SMS küldés, fogadás Bluetooth NFC USB

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Programozási nyelvek Java

Egységes és objektumközpontú adatbázis-kezelés (2. rész)

ANDROID ALKALMAZÁSFEJLESZTÉS

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).

Szálkezelés Rajzolás képernyőre Bevitel kezelése - Érintő képernyő - Billentyűzet

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java VII. Polimorfizmus a Java nyelvben

Osztályok. 4. gyakorlat

Előzmények

Web-fejlesztés NGM_IN002_1

Java VII. Polimorfizmus a Java nyelvben

Adattárolás Szenzorok

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Mobil készülékek programozása

Programozás II gyakorlat. 6. Polimorfizmus

Fejlesztői szemmel at K

Bevezetés a programozásba előadás: Öröklődés

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

OOP: Java 8.Gy: Abstract osztályok, interfészek

Gate Control okostelefon-alkalmazás

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek

Java és web programozás

4. A konténerek Konténerek LinearLayout

JAVA webes alkalmazások

Helymeghatározás. Hol vagyok a világban?

JavaScript Web AppBuilder használata

Az IBM WebSphere Multichannel Bank Transformation Toolkit V7.1 felgyorsítja a többcsatornás alkalmazásfejlesztést

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

















Átírás:

OE-NIK 2012. április 22. Sicz-Mesziár János sicz-mesziar.janos@ nik.uni-obuda.hu Broadcast Service Widget

Broadcast Mi is ez? Aszinkron, üzenetszórásos értesítés Azok akik felregisztráltak rá értesülnek róla Két fő csoport: Normal broadcast teljesen aszinkron, véletlen sorrend Hatékonyabb, de korlátok: nincs visszatérési érték, visszavonás Ordered broadcast egyszerre csak egy receiver fut visszavonható abort Prioritásokat adhatunk (android:priority) onreceive() csak egyszer fut le - rövid életű Hosszan futó műveletekre alkalmatlan (timeout ~10sec) Popup dialog meghívására sem jó (objektum már nem él) 2

BroadcastReceiver-re példák Akkumulátor szint változik android.intent.action.battery_changed Automatikus indítás? Rendszer betöltődött android.intent.action.boot_completed SMS érkezett android.provider.telephony.sms_received Bluetooth felderítés android.bluetooth.adapter.action.discovery_started android.bluetooth.adapter.action.discovery_finished Bejövő hívás, kimenő hívás android.intent.action.phone_state android.intent.action.new_outgoing_call Hálózat változik Képernyőt lekapcsolták 3

Broadcast megvalósítás Regisztrálás statikusan BroadcastReceiver osztály implementálása AndroidManifest.xml-ben <receiver> megadása Regisztrálás dinamikusan, futási időben BroadcastReceiver osztály implementálása Context.registerReceiver()-el regisztálunk onresume() Context.unregisterReceiver() leiratkozunk onpause() private BroadcastReceiver mbatinforeceiver = new BroadcastReceiver(){ public void onreceive(context arg0, Intent intent){ int level = intent.getintextra("level",0); contenttxt.settext("" + level + %"); }}; Broadcast kibocsátás Context.sendBroadcast(Intent intent) 4

Service Egy alkalmazás komponens: hosszan futó műveletek végrehajtása háttérben fut, nincs UI Két formája van: Started egy komponens (pl.: Activity) elindítja a startservice() eljárással Végtelenségig fut, akkor is ha az őt elindító komponens megsemmisül. (Nincs visszatérési érték) stopservice() Általában egy műveletet hajt végre, majd megsemmisíti magát. Pl.: letöltés / feltöltés az internet irányába Bound Egy komponens bindservice()-al kötődik Nem külön szálon fut! Nem egy külön folyamat! Együtt is alkalmazható Kliens-szerver felület a komponens és service között (request, results, ) Addig fut amíg az összeköttetés él. (Pl.: zenelejátszás) 5

Service (2) Bármelyik komponens használhatja a service-t! De priváttá tehető! startservice() bindservice() stopself() stopservice() unbindservice() Clean up:threads, listeners, receivers 6

Service - gyakorlatban Regisztrálás az AndroidManifest.xml-ben! Service leszármaztatása public class MyService extends Service{ public void oncreate(){}; public int onstartcommand(intent intent, int flag, int id){}; public void ondestroy(){}; } public IBinder onbind(intent intent) { return null; } 7

Service gyakorlatban (2) Honnan tudjuk, hogy működik? Futó service-ok: Settings > Application > Running services 8

Widget Mini alkalmazás Beágyazható másik alkalmazásba (Home) Rendszeres időközönként frissül 9

Widget szabvány méretei Forrás: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html#sizes 10

Widget - gyakorlatban App Widget definiálás AndroidManifest-ben <receiver android:name="exampleappwidgetprovider" > <intent-filter> <action android:name="android.appwidget.action.appwidget_update" /> </intent-filter> <meta-data android:name="android.appwidget.provider android:resource="@xml/example_appwidget_info" /> </receiver> AppWidgetProviderInfo Metadata <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minwidth="294dp" Új > Android XML > AppWidget Provider android:minheight="72dp" android:updateperiodmillis="86400000 android:initiallayout="@layout/example_appwidget > </appwidget-provider> 11

Widget gyakorlatban (2) App Widget Layout (res/layout/) Tipikus layout építés (xml, grafikus szerkesztő, ) DE, RemoteViews-ra alapszik, nem támogat minden layout-ot vagy view-t! Támgatott layout-ok: FrameLayout LinearLayout RelativeLayout Támogatott widget-ek: Button, ImageButton TextView, ImageView ProgressBar Chronometer, ViewFlipper, AnalogClock 12

Widget gyakorlatban (3) AppWidgetProvider osztály implementálása BroadcastReceiver leszármazott Értesítés kapunk, ha : onupdate() ondeleted() onenabled() ondisabled() onreceive() időszakos frissítés (updateperiodmillis) widgetet eltávolították első widget létrehozáskor utolsó widget eltávolításakor minden broadcast beérkezésekor 13

14