Documente Academic
Documente Profesional
Documente Cultură
să interacționeze. O aplicație Android e formată din una sau mai multe activități, iar timpul de execuție nu
influențează timpul de răspuns al aplicației. Există întotdeauna o activitate principală care este afișată
atunci cînd aplicația Android este lansată în execuție inițială.
Activity Lifecycle – ciclul de viață al unei activități, descrie starea în care o activitate poate fi la un
moment dat.
Activitatea se află în prim plan și este vizibilă, astfel încât utilizatorul poate interacționa
cu aceasta prin intermediul interfeței grafice pe care o oferă(running)
Paused – stopată parțial de sistem sau o alta activitate e in focus, dar inca e vizibila
Activitatea se află în fundal și este (parțial) vizibilă; o astfel de situație este întâlnită în
momentul în care o altă activitate a fost pornită, însă interfața sa grafică este transparentă
sau nu ocupă întreaga suprafață a dispozitivului de afișare.
Structura Intent-ului :
O intenție este un mecanism de conexiune între componentele SO Android și se caracterezieaza prin
flexiblitate, extensibilitate, propagă un mesaj asincron.
Intenție = acțiune+date
Invocă activități sau servicii și se folosesc la transmiterea mesajelor la nivel de SO:apel telefonic,
SMS, status conectivitate, baterie.
<activity
android:name="ro.pub.cs.systems.eim.lab04.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="ro.pub.cs.systems.eim.lab04.intent.action.MainActivity" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Prin intermediul unei intenții, o aplicație poate invoca atât o activitate din cadrul său, cât și o activitate
aparținând altei aplicații.
în situația în care se apelează o activitate din cadrul aceleiași aplicații, se poate folosi folosi metoda
startActivity(new Intent(this, AnotherActivity.class));
dacă se dorește rularea unei activități existente în cadrul altei aplicații, aceasta va trebui referită
prin numele său complet, inclusiv denumirea pachetului care o identifică
startActivity(new Intent("ro.pub.cs.systems.eim.lab04.Another
Explicit Intent ( Invocare prin precizarea acțiunii )
O intenție poate fi definită și prin intermediul unei acțiuni care se dorește a fi realizată, pentru care pot fi
atașate opțional și anumite date. Utilizatorul care folosește un astfel de mecanism nu cunoaște activitatea
(sau aplicația Android) care va fi lansată în execuție pentru realizarea acțiunii respective. Pentru a putea
îndeplini o astfel de solicitare, sistemul de operare Android trebuie să identifice, la momentul rulării,
activitatea care este cea mai adecvată pentru a rezolva acțiunea dorită. În acest fel, pot fi utilizate
funcționalități deja implementate în cadrul sistemului de operare Android, fără a cunoaște în prealabil
aplicația responsabilă de aceasta.
căutarea unor informații pe Internet folosind un motor de căutare, termenul căutat fiind indicat în
secțiunea extra asociată intenției, fiind identificată prin cheia SearchManager.QUERY:
Intentii cu difuzare
Construirea unei intenții care urmează să fie difuzată la nivelul sistemului de operare Android poate fi
realizată prin definirea unui obiect de tipul Intent, pentru care se vor specifica acțiunea, datele și
categoria, astfel încât obiectele de tip ascultător să îl poată identifica cât mai exact. Ulterior, acesta va fi
trimis tuturor proceselor aferente aplicațiilor instalate pe dispozitivul mobil prin intermediul
metodei sendBroadcast(), căreia îi este atașat ca parametru.
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
Metoda onReceive() va fi invocată în mod automat în momentul în care este primită o intenție cu difuzare,
fiind executată pe firul de execuție principal al aplicației. De regulă, în cadrul acestei metode utilizatorul
este anunțat asupra producerii evenimentului prin intermediul serviciului de notificare (Notification
Manager), este lansat în execuție un serviciu sau sunt actualizate componente din cadrul interfeței grafice.
1. intenții cu difuzare ordonate, utile în situația în care o intenție cu difuzare trebuie să fie procesată
secvențial de mai mulți ascultători, fiecare dintre aceștia având posibilitatea de a modifica intenția
respectivă;
2. intenții cu difuzare persistente, care mențin valoarea care a fost transmisă cel mai recent.
Cele mai multe servicii de sistem transmit intenții cu difuzare pentru a semnala faptul că s-au produs
anumite modificări la nivelul stării dispozitivului mobil sau al aplicațiilor (primirea unui apel telefonic /
mesaj, schimbarea nivelului de încărcare al bateriei, conectivitatea la Internet).
Android Manifest
Fiecare proiect Android include fișierul AndroidManifest.xml, care este un root directory. Manifest este
importantă parte a unei aplicații deaorecere definește structura aplicației, componentele.
Fișierul include tag pentru Activitate, Services, Content Provider și Broadcast Receiver,cee ace permite
invocarea intențiilor și interacțiunea activităților .
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.paad.myapp"
android:versionCode="1"
android:versionName="0.9 Beta"
android:installLocation="preferExternal">
[....manifest nodes....]
</manifest>
<!-- Beware that these values are overridden by the build.gradle file -->
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="26" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".DisplayMessageActivity"
android:parentActivityName=".MainActivity" />
</application>
</manifest>
<service
android:name="ro.pub.cs.systems.eim.lab05.SomeService"
android:enabled="true"
android:permission="ro.pub.cs.systems.eim.lab05.SOME_SERVICE_PERMISSION" />
clasa android.app.Service
- onCreate()
- onBind(Intent)