Sunteți pe pagina 1din 7

Noțiunea de Activity – componentă a unei aplicației ce oferă o interfață grafică cu care utilizatorul poate

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.

 Resumed(running) or active – in foreground, user focus

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.

 Stopped – complet in background

Activitatea se află în background și este complect ascunsă; o astfel de situație este


întîlnită în momentul în care o altă activitate a fost pornită, iar interfața sa grafică ocupă
întreaga suprafață a dispozitivului de afișare.
 Destroyed – distrugerea procesului, sistemul renunță la activitatea din memorie, eliberînd
memoria.
Process Lifecycle :

 Foreground activity – activitatea principală, care este vizibilă, se află în proces


principal. Procesul va fi distrus , doar dacă se folosește mai multă memorie decît cea
disponibilă.
 Visible activity – activitate vizibilă(este vizibilă pentru utilizator, dar nu este în prim-
plan). Este considerată extrem de importantă și nu va fi distrusă decît dacă este necesar
pentru a menține activitatea din prim-plan.
 Background activity – activitate care nu este vizibilă pentru utilizator și a fost oprită.
Sistemul poate ucide în siguranță procesul său pentru a recupera memorie pentru alte
procese. La repornirea activității, aceasta va reporni în aceeași stare în care l-a lăsat
ultima dată utilizatorul.
 Empty process – proces gol care nu găzduiește activități sau alte componente ale
aplicației(Servicii sau BroadcastReceiver). Acestea sunt distruse de sistem, deoarece
memoria devine scăzută.

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.

 O componentă(activitate/serviciu), ce este definită în AndroidManifest.xml și eticheta


<intent-filter>
 acțiunea(action) - este indicată prin proprietatea android:name, cele mai frecvente
valori fiind: MAIN,VIEW, DIAL, CALL, ANSWER,SEND.
 data – reprezintă informațiile care vor fi procesate, find exprimate de obicei sub formă de
URI.
1. Uri.parse()
2. android:host, android:port
3. android:path
4. android:scheme
 category (android:name) – LAUNCHER, DEFAULT,ALTERNATIVE
 type
 component
 extra : putExtra()/getExtrea()

Intent Resolution (Explicit Intent / Implicit Intent)


Implicit Intent ( Invocare prin precizarea clasei incarcate )
În fișierul AndroidManifest.xml, orice activitate definește în cadrul elementului
<intent-filter>, denumirea unei acțiuni care va putea fi folosită de o intenție pentru a o invoca. Se
definește o acțiune predefinită de utilizator , din categoria DEFAULT!

<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:

Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);


intent.setData(Uri.parse("http://www.google.ro"));

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.

Intent intent = new Intent(SOME_ACTION);


intent.putExtra("ro.pub.cs.systems.eim.lab04.someKey", someValue);
sendBroadcast(intent);

PRIMIREA UNEI INTENȚII CU DIFUZARE


Pentru a putea primi o intenție cu difuzare, o componentă trebuie să fie înregistrată în acest sens, definind
un filtru de intenții pentru a specifica ce tipuri de acțiuni și ce tipuri de date asociate intenției poate
procesa.
O clasă capabilă să proceseze intenții cu difuzare este derivată din android.content.BroadcastReceiver,
implementând metoda onReceive() pe care realizează rutina de tratare propriu-zisă:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class SomeEventBroadcastReceiver extends BroadcastReceiver {


@Override
public void onReceive(Context context, Intent 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.

Tipuri particulare de intenții cu difuzare

Există și tipuri particulare de intenții cu difuzare:

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.

Gestiunea intențiilor cu difuzare native

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).

ACTION_BATTERY_CHANGED , ACTION_BATTERY_LOW, ACTION_BATTERY_OKAY,


ACTION_BATTERY_CONNECTED

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>

 <activity> for each subclass of Activity.


 <service> for each subclass of Service.
 <receiver> for each subclass of BroadcastReceiver.
 <provider> for each subclass of ContentProvider.
 <intent-filter> - Specifică tipurile de intenții la care poate primi un activ, un serviciu sau un receptor de
difuzare.
 <permission> - Declarează o permisiune de securitate care poate fi utilizată pentru a limita accesul la
anumite componente sau caracteristici ale acestei aplicații sau ale altor aplicații.
 <uses-sdk> - Vă permite să exprimați compatibilitatea unei aplicații cu una sau mai multe versiuni ale
platformei Android, cu ajutorul unui număr întreg de nivel API.
 <category> - Adaugă un nume de categorie la un filtru de intenție.
 <application> - Declararea unei aplicații
 <manifest> - root AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?>


<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
package="com.example.myapp">

<!-- 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">

<!-- This name is resolved to com.example.myapp.MainActivity


based upon the package attribute -->
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:name=".DisplayMessageActivity"
android:parentActivityName=".MainActivity" />
</application>
</manifest>

Structura unui Serviciu

Un serviciu este o componentă Android adecvată pentru implementarea de funcționalități complexe, ce


implică un volum de procesare mare, de lungă durată, ce nu necesită interacțiune cu utilizatorul.
Procese care ar trebui să ruleze în background. Serviciul este rulat pe firul de execuție principal al
aplicației Android.

<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)

 definit în AndroidManifest.xml – eticheta <service>


- android:name – clasa care implementează serviciul
- android:permission – restrictionează operațiile de pornire oprire la componentele care o
dețin
Runnable si Handlers (proprietati si mecanisme)

Interfete si Clase Abstracte

S-ar putea să vă placă și

  • PAm Examen-1
    PAm Examen-1
    Document12 pagini
    PAm Examen-1
    Eric Semeniuc
    Încă nu există evaluări
  • SOMIPPRaspunsuri
    SOMIPPRaspunsuri
    Document82 pagini
    SOMIPPRaspunsuri
    Urmanschi Mihail
    Încă nu există evaluări
  • Pam Exam
    Pam Exam
    Document2 pagini
    Pam Exam
    Culea Constantin
    Încă nu există evaluări
  • Examen Somipp
    Examen Somipp
    Document65 pagini
    Examen Somipp
    Ana Toma
    100% (1)
  • Examen PPe
    Examen PPe
    Document11 pagini
    Examen PPe
    crismaruion
    100% (2)
  • PAM Lab 1
    PAM Lab 1
    Document6 pagini
    PAM Lab 1
    Vladislav Crivenco
    Încă nu există evaluări
  • Lab 7 Somipp
    Lab 7 Somipp
    Document5 pagini
    Lab 7 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Somipp Lab4
    Somipp Lab4
    Document3 pagini
    Somipp Lab4
    Raducan Alina
    Încă nu există evaluări
  • SOMIPP7
    SOMIPP7
    Document3 pagini
    SOMIPP7
    Damean Alexandra
    Încă nu există evaluări
  • Lab 1 Somipp
    Lab 1 Somipp
    Document7 pagini
    Lab 1 Somipp
    TîmburŞtefan
    Încă nu există evaluări
  • SOMIPP
     SOMIPP
    Document6 pagini
    SOMIPP
    Damean Alexandra
    Încă nu există evaluări
  • Lab 2 Somipp
    Lab 2 Somipp
    Document5 pagini
    Lab 2 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Pam PDF
    Pam PDF
    Document4 pagini
    Pam PDF
    Andreas Petrakis Houloutsas
    Încă nu există evaluări
  • Lab1 Pam
    Lab1 Pam
    Document9 pagini
    Lab1 Pam
    Ion Popescu
    100% (2)
  • Somipp Linux 4 UTM
    Somipp Linux 4 UTM
    Document4 pagini
    Somipp Linux 4 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • Lab 6 Somipp
    Lab 6 Somipp
    Document5 pagini
    Lab 6 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Examen TIDPP
    Examen TIDPP
    Document3 pagini
    Examen TIDPP
    Rosca Doinita
    Încă nu există evaluări
  • Lab 2 Pam
    Lab 2 Pam
    Document5 pagini
    Lab 2 Pam
    Augusta Bucataru
    Încă nu există evaluări
  • Lab2 PAM
    Lab2 PAM
    Document12 pagini
    Lab2 PAM
    Ion Popescu
    Încă nu există evaluări
  • Lab 1 Somipp
    Lab 1 Somipp
    Document5 pagini
    Lab 1 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Lab 3 Somipp
    Lab 3 Somipp
    Document14 pagini
    Lab 3 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • SOMIPP Lab5
    SOMIPP Lab5
    Document4 pagini
    SOMIPP Lab5
    X3 KTO
    Încă nu există evaluări
  • SOMIPP Lab 5
    SOMIPP Lab 5
    Document5 pagini
    SOMIPP Lab 5
    Augusta Bucataru
    Încă nu există evaluări
  • Pam 4
    Pam 4
    Document4 pagini
    Pam 4
    violina
    Încă nu există evaluări
  • Lab 1 Pam
    Lab 1 Pam
    Document6 pagini
    Lab 1 Pam
    Augusta Bucataru
    Încă nu există evaluări
  • Somipp Linux 2 UTM
    Somipp Linux 2 UTM
    Document7 pagini
    Somipp Linux 2 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • Proiect de Curs AMOO Druta
    Proiect de Curs AMOO Druta
    Document48 pagini
    Proiect de Curs AMOO Druta
    nn nnn
    Încă nu există evaluări
  • Somipp SOMIPP5
    Somipp SOMIPP5
    Document6 pagini
    Somipp SOMIPP5
    Damean Alexandra
    Încă nu există evaluări
  • Git Laborator 1
    Git Laborator 1
    Document1 pagină
    Git Laborator 1
    Daniil
    Încă nu există evaluări
  • Lab.6 FC
    Lab.6 FC
    Document3 pagini
    Lab.6 FC
    Cristina Florea
    Încă nu există evaluări
  • Examen SAV
    Examen SAV
    Document24 pagini
    Examen SAV
    Vitalie Nastasiu
    Încă nu există evaluări
  • PPE Lab7
    PPE Lab7
    Document14 pagini
    PPE Lab7
    danielploaia
    Încă nu există evaluări
  • SOMIPP Lab6
    SOMIPP Lab6
    Document4 pagini
    SOMIPP Lab6
    Dan
    Încă nu există evaluări
  • Lab. 3
    Lab. 3
    Document5 pagini
    Lab. 3
    Cristina Florea
    Încă nu există evaluări
  • Lab. 2
    Lab. 2
    Document7 pagini
    Lab. 2
    Cristina Florea
    Încă nu există evaluări
  • Examen PW
    Examen PW
    Document71 pagini
    Examen PW
    DorinRotaru
    Încă nu există evaluări
  • Lab 1 PPE
    Lab 1 PPE
    Document4 pagini
    Lab 1 PPE
    King 79
    Încă nu există evaluări
  • Lab 2 AMOO
    Lab 2 AMOO
    Document6 pagini
    Lab 2 AMOO
    Gheorghe Felicia
    Încă nu există evaluări
  • Lab2 Somipp
    Lab2 Somipp
    Document6 pagini
    Lab2 Somipp
    Iov Albu
    Încă nu există evaluări
  • Lab6 AMOO - Diagrame de Stari Si Activitati
    Lab6 AMOO - Diagrame de Stari Si Activitati
    Document10 pagini
    Lab6 AMOO - Diagrame de Stari Si Activitati
    Dan
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document4 pagini
    Lab 3
    Rosca Doinita
    Încă nu există evaluări
  • SOMIPP Labs
    SOMIPP Labs
    Document107 pagini
    SOMIPP Labs
    Ionel Boaghe
    Încă nu există evaluări
  • BDC Lucrare de Curs
    BDC Lucrare de Curs
    Document37 pagini
    BDC Lucrare de Curs
    Vladislav Crivenco
    Încă nu există evaluări
  • Laboratorul 1 TIDPP
    Laboratorul 1 TIDPP
    Document11 pagini
    Laboratorul 1 TIDPP
    Ion Popescu
    0% (1)
  • TW Lab 5
    TW Lab 5
    Document4 pagini
    TW Lab 5
    danielploaia
    Încă nu există evaluări
  • Laborator NR.2
    Laborator NR.2
    Document9 pagini
    Laborator NR.2
    Daniil
    Încă nu există evaluări
  • PS TS
    PS TS
    Document14 pagini
    PS TS
    Victor Turculet
    Încă nu există evaluări
  • Lab7 AMOO
    Lab7 AMOO
    Document11 pagini
    Lab7 AMOO
    Сергей Борта
    Încă nu există evaluări
  • Amoo 2
    Amoo 2
    Document8 pagini
    Amoo 2
    AlionaCrigan
    Încă nu există evaluări
  • Lab2 (TS)
    Lab2 (TS)
    Document7 pagini
    Lab2 (TS)
    Zeul Hriscei
    Încă nu există evaluări
  • Lab 3 AMOO
    Lab 3 AMOO
    Document9 pagini
    Lab 3 AMOO
    Gheorghe Felicia
    Încă nu există evaluări
  • Laborator1 TMPS
    Laborator1 TMPS
    Document4 pagini
    Laborator1 TMPS
    Ion Cornea
    Încă nu există evaluări
  • PPE Lab4-5
    PPE Lab4-5
    Document8 pagini
    PPE Lab4-5
    danielploaia
    Încă nu există evaluări
  • Somipp Linux 1 UTM
    Somipp Linux 1 UTM
    Document10 pagini
    Somipp Linux 1 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • PAM Lab6
    PAM Lab6
    Document31 pagini
    PAM Lab6
    Ion Cornea
    Încă nu există evaluări
  • Pam Test 1
    Pam Test 1
    Document4 pagini
    Pam Test 1
    Eric Semeniuc
    Încă nu există evaluări
  • Seminar 2
    Seminar 2
    Document26 pagini
    Seminar 2
    Carina Rizea
    Încă nu există evaluări
  • Tema 2 - Structura Aplicației Android
    Tema 2 - Structura Aplicației Android
    Document28 pagini
    Tema 2 - Structura Aplicației Android
    Mister Anonim
    Încă nu există evaluări
  • Structura Unei Aplicații Android
    Structura Unei Aplicații Android
    Document36 pagini
    Structura Unei Aplicații Android
    Lucian
    Încă nu există evaluări
  • Pam Test 1
    Pam Test 1
    Document28 pagini
    Pam Test 1
    Hiruine
    Încă nu există evaluări
  • Laborator NR.1
    Laborator NR.1
    Document13 pagini
    Laborator NR.1
    Daniil
    100% (1)
  • FCIM - Instrumente Web
    FCIM - Instrumente Web
    Document2 pagini
    FCIM - Instrumente Web
    Daniil
    Încă nu există evaluări
  • Lfa Report
    Lfa Report
    Document12 pagini
    Lfa Report
    Daniil
    Încă nu există evaluări
  • Laborator NR.2
    Laborator NR.2
    Document9 pagini
    Laborator NR.2
    Daniil
    Încă nu există evaluări
  • Git Laborator 1
    Git Laborator 1
    Document1 pagină
    Git Laborator 1
    Daniil
    Încă nu există evaluări
  • Lucrare de Laborator NR 1 La Analiza Si Proiectarea Algoritmilor. (Conspecte - Ro)
    Lucrare de Laborator NR 1 La Analiza Si Proiectarea Algoritmilor. (Conspecte - Ro)
    Document5 pagini
    Lucrare de Laborator NR 1 La Analiza Si Proiectarea Algoritmilor. (Conspecte - Ro)
    Daniil
    Încă nu există evaluări