SlideShare una empresa de Scribd logo
1 de 35
Android
    Intents, IntentFilters, BroadcastReceivers

                            Vlad PETRE

                     vlad@vladpetre.com
                http://twitter.com/vladpetre88
              http://facebook.com/vladpetre88
          http://www.linkedin.com/in/vladpetre88


1           Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Intentii
    • O intentie reprezinta o descriere abstracta a unei
      operatii ce se doreste a fi executata.
    • Exemple de intentii:
      – Apel telefonic
      – Trimiterea unui sms
      – Deschiderea unei activitati
    • Reprezinta un Obiect.


2                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Atributele unui Intent
    •   Action
    •   Data
    •   Category
    •   Type
    •   Component
    •   Extras



3                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Action
    • Descrie actiunea ce se doreste a fi executata:
       –   Apel telefonic
       –   Trimiterea unui SMS
       –   Deschiderea unui document
       –   Editarea unui document
       –   Pornirea unei activitati
    • Reprezentat printr-un String. Exemple:
       –   “android.intent.action.MAIN”
       –   “android.intent.action.DIAL”
       –   “android.intent.action.VIEW”
       –   “android.intent.action.EDIT”
4                       Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Data
    • In general o adresa URI.
    • Exemple:
      – http://www.google.ro
      – content://contacts/…
      – file:///sdcard/...
      – tel://...




5                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Category
    • Optional.
    • Categoriseste actiunea. Ofera astfel informatii suplimentare.
       – CATEGORY_LAUNCHER – activitate initiala a unui task
       – CATEGORY_HOME – activitatea afiseaza homescreen-ul
       –…
    • Un Intent poate contine mai multe categorii.
    • String:
       – “android.intent.category.LAUNCHER”




6                    Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Type
    • Tipul datelor din Intent
    • Atribut optional.
    • Daca nu e specificat, tipul este dedus din data in sine
      (ex: file:///sdcard/poze/poza.jpg).
    • String:
      – “image/jpg”
      – “contacts/contact”



7                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Component
    • Specifica componenta exacta de destinatie.
    • Atribut optional.
    • Daca nu e specificat, componenta destinatie este
      determinata pe baza celorlalte atribute (actiunea,
      data/type, categorii).
    • Daca e specificat, toate celelalte componente ale unui
      Intent devin optionale.




8                    Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Extras
    • Date suplimentare
    • Bundle
      – putIntExtra(…)
      – putBooleanExtra(…)
      – getStringExtra()
      – getIntExtra()
      – getBooleanExtra()
      –…


9                 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Cum folosim Intent-urile?


10        Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Mod de folosire
     • Metode care emit Intent-uri:
       – void startActivity (Intent i)
       – void startService (Intent i)
       – void sendBroadcast (Intent i, String permission)


     • Sistemul va cauta componenta cea mai potrivita
       pentru a trata intentia.


11                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Cautarea
     • Cautarea componentei se realizeaza dupa:
       – ACTION
       – TYPE (de obiei este extras din DATA)
       – CATEGORY
     • Se determina astfel componenta cea mai potrivita
       (sau o lista de compnente, in cazul in care mai multe
       componente pot trata aceasta intentie).



12                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
IntentFilters
     • Mod de a declara filtre de intentii la care pot
       raspunde diferite componente:
       – Activitati
       – Servicii
       – BroadcastReceivers
     • Trebuie declarat in Manifest.




13                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Exemplu IntentFilters 1




     • Ex: Launcher-ul cere o lista cu toate componentele
       ce raspund la:
       – Actiunea: ACTION_MAIN
       – Categoria: CATEGORY_LAUNCHER

14                 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Exemplu IntentFilters 2




     • In Manifest
15                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Exemplu IntentFilters 3




     • In Manifest

16                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Cum legam activitatile?


17       Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Legarea activitatilor
     • Pornirea unei activitati
     • Pasarea de parametri noii activitati
     • Intoarcerea unei valori de la noua activitate




18                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Metode din clasa Activity (1)
     • Intent getIntent()
       – Întoarce Intent-ul cu care a fost pornită
     • void setResult (int resultCode)
       – Setează valoarea de rezultat ce trebuie întoarsă
     • void setResult (int resultCode, Intent data)
       – Setează valoarea de rezultat ce trebuie întoarsă
       – Adaugă date



19                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Metode din clasa Activity (2)
     • void onActivityResult (int requestCode,
                               int resultCode, Intent data)
     • Trebuie suprascrisa
     • Este apelată de sistem când o activitate întoarce un rezultat.
     • Parametri
        – requestCode – codul pus in startActivityForResult(…)
        – resultCode –codul intors de setResult(…)
        – data – informațiile suplimentare setate de setResult(…)



20                      Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Pornirea unei activitati (1)
     context.startActivity(Intent intent);
     Intent starter = new Intent(context,
                          ClasaActvitate.class);
     context.startActivity(starter);




21                Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Cum pornim o activitate pasand parametri?




22              Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Pornirea unei activitati cu parametri (1)
     context.startActivity(Intent intent);
     Intent starter = new Intent(context,
                          ClasaActvitate.class);
     context.startActivity(starter);

     starter.putExtra(“parametru1”, valoare);
     context.startActivity(starter);


23                Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Pornirea unei activitati cu parametri (2)
     • Pentru a prelua parametrii intent-ului, in noua
       activitate:

       Intent starter = getIntent();
       String parametru1 =
       starter.getStringExtra(“parametru1”);




24                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Cum pornesc o activitate ce intoarce o
                   valoare?



25            Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Activitati ce intorc o valoare (1)
     • In activitatea initiala:
       context.startActivityForResult(Intent intent,
                                         int requestCode);
       int requestCode = 100;
       Intent starter = new Intent(context,
                              ClasaActvitate.class);
       context.startActivityForResult(starter,
                                               requestCode);

26                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Activitati ce intorc o valoare (2)
     • În noua activitate pornită, pentru a intoarce un
       rezultat:
       Intent data = new Intent(this);
       data.putExtra(“rezultat1”, rezultat1);
       data.putExtra(“rezultat2”, rezultat2);
       int resultCode = 200;
       setResult(resultCode, data);
       finish();
27                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Activitati ce intorc o valoare (3)
     • Inapoi in activitatea initiala, trebuie sa implementam
       metoda care preia rezultatele:
       void onActivityResult(int requestCode, int
                         resultCode, Intent data)
     • requestCode – codul initial pentru a identifica cererea
     • resultCode – codul intors ca rezultat
     • data - un Intent care poate contine alte informatii




28                    Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
BroadcastReceiver (I)
     • Componenta ce permite captarea de anunturi
       generate de sistem sau informatii generate de alte
       aplicatii.
     • Anunturile vin sub forma de Intent-uri.
     • Exemple de actiuni informative:
       – “android.intent.action.BATTERY_LOW”
       – “android.intent.action.ACTION_BOOT_COMPLETED”
       – “android.intent.action.ACTION_POWER_CONNECTED”


29                 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
BroadcastReceiver (II)
     • Extind clasa BroadcastReceiver
       – void onReceive(Context context, Intent intent)
          • Trebuie suprascrisă
     • Nu extinde Context, ci îl primește ca parametru.




30                    Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Ciclul de viata al unui BroadcastReceiver
     • Cât timp rulează funcția onReceive()



     • Un BroadcastReceiver nu poate:
       – Porni ferestre de Dialog
       – Executa actiuni asincrone




31                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Exemplu (1)




     • In Manifest

32                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Exemplu (2)




33   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Referinte
     •   http://pdm.ipworkshop.ro
     •   http://developer.android.com/guide/topics/intents/inten
     •   http://developer.android.com/reference/android/conten
     •   http://developer.android.com/reference/android/conten




34                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Întrebări?


35   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea

Más contenido relacionado

Más de Vlad Petre

The 3-D Secure Protocol
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure ProtocolVlad Petre
 
Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Vlad Petre
 
[Curs Android] C10 - Threaduri & Servicii (IPW 2011)
[Curs Android] C10 - Threaduri & Servicii (IPW 2011)[Curs Android] C10 - Threaduri & Servicii (IPW 2011)
[Curs Android] C10 - Threaduri & Servicii (IPW 2011)Vlad Petre
 
[Curs Android] C09 - Stocarea Datelor (IPW 2011)
[Curs Android] C09 - Stocarea Datelor (IPW 2011)[Curs Android] C09 - Stocarea Datelor (IPW 2011)
[Curs Android] C09 - Stocarea Datelor (IPW 2011)Vlad Petre
 
[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)Vlad Petre
 
[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)Vlad Petre
 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)Vlad Petre
 
[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)Vlad Petre
 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)Vlad Petre
 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareVlad Petre
 
Eneco: Energy Economy
Eneco: Energy EconomyEneco: Energy Economy
Eneco: Energy EconomyVlad Petre
 
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLKickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLVlad Petre
 
[SCS]Friloc - Scientific Paper
[SCS]Friloc - Scientific Paper[SCS]Friloc - Scientific Paper
[SCS]Friloc - Scientific PaperVlad Petre
 
Critica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingCritica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingVlad Petre
 
Critica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeCritica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeVlad Petre
 
Voicenger - Software Architecture Document
Voicenger - Software Architecture DocumentVoicenger - Software Architecture Document
Voicenger - Software Architecture DocumentVlad Petre
 
Voicenger - Software Design Document
Voicenger - Software Design DocumentVoicenger - Software Design Document
Voicenger - Software Design DocumentVlad Petre
 
Voicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVoicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVlad Petre
 
SIM Project: Optimizing a Benchmarking Tool
SIM Project: Optimizing a Benchmarking ToolSIM Project: Optimizing a Benchmarking Tool
SIM Project: Optimizing a Benchmarking ToolVlad Petre
 
The Bluetooth Protocol
The Bluetooth ProtocolThe Bluetooth Protocol
The Bluetooth ProtocolVlad Petre
 

Más de Vlad Petre (20)

The 3-D Secure Protocol
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure Protocol
 
Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.
 
[Curs Android] C10 - Threaduri & Servicii (IPW 2011)
[Curs Android] C10 - Threaduri & Servicii (IPW 2011)[Curs Android] C10 - Threaduri & Servicii (IPW 2011)
[Curs Android] C10 - Threaduri & Servicii (IPW 2011)
 
[Curs Android] C09 - Stocarea Datelor (IPW 2011)
[Curs Android] C09 - Stocarea Datelor (IPW 2011)[Curs Android] C09 - Stocarea Datelor (IPW 2011)
[Curs Android] C09 - Stocarea Datelor (IPW 2011)
 
[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)
 
[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)
 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)
 
[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)
 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)
 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
 
Eneco: Energy Economy
Eneco: Energy EconomyEneco: Energy Economy
Eneco: Energy Economy
 
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLKickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
 
[SCS]Friloc - Scientific Paper
[SCS]Friloc - Scientific Paper[SCS]Friloc - Scientific Paper
[SCS]Friloc - Scientific Paper
 
Critica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingCritica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive Computing
 
Critica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeCritica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor Vinge
 
Voicenger - Software Architecture Document
Voicenger - Software Architecture DocumentVoicenger - Software Architecture Document
Voicenger - Software Architecture Document
 
Voicenger - Software Design Document
Voicenger - Software Design DocumentVoicenger - Software Design Document
Voicenger - Software Design Document
 
Voicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVoicenger - System Requirements Specification
Voicenger - System Requirements Specification
 
SIM Project: Optimizing a Benchmarking Tool
SIM Project: Optimizing a Benchmarking ToolSIM Project: Optimizing a Benchmarking Tool
SIM Project: Optimizing a Benchmarking Tool
 
The Bluetooth Protocol
The Bluetooth ProtocolThe Bluetooth Protocol
The Bluetooth Protocol
 

[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)

  • 1. Android Intents, IntentFilters, BroadcastReceivers Vlad PETRE vlad@vladpetre.com http://twitter.com/vladpetre88 http://facebook.com/vladpetre88 http://www.linkedin.com/in/vladpetre88 1 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 2. Intentii • O intentie reprezinta o descriere abstracta a unei operatii ce se doreste a fi executata. • Exemple de intentii: – Apel telefonic – Trimiterea unui sms – Deschiderea unei activitati • Reprezinta un Obiect. 2 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 3. Atributele unui Intent • Action • Data • Category • Type • Component • Extras 3 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 4. Action • Descrie actiunea ce se doreste a fi executata: – Apel telefonic – Trimiterea unui SMS – Deschiderea unui document – Editarea unui document – Pornirea unei activitati • Reprezentat printr-un String. Exemple: – “android.intent.action.MAIN” – “android.intent.action.DIAL” – “android.intent.action.VIEW” – “android.intent.action.EDIT” 4 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 5. Data • In general o adresa URI. • Exemple: – http://www.google.ro – content://contacts/… – file:///sdcard/... – tel://... 5 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 6. Category • Optional. • Categoriseste actiunea. Ofera astfel informatii suplimentare. – CATEGORY_LAUNCHER – activitate initiala a unui task – CATEGORY_HOME – activitatea afiseaza homescreen-ul –… • Un Intent poate contine mai multe categorii. • String: – “android.intent.category.LAUNCHER” 6 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 7. Type • Tipul datelor din Intent • Atribut optional. • Daca nu e specificat, tipul este dedus din data in sine (ex: file:///sdcard/poze/poza.jpg). • String: – “image/jpg” – “contacts/contact” 7 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 8. Component • Specifica componenta exacta de destinatie. • Atribut optional. • Daca nu e specificat, componenta destinatie este determinata pe baza celorlalte atribute (actiunea, data/type, categorii). • Daca e specificat, toate celelalte componente ale unui Intent devin optionale. 8 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 9. Extras • Date suplimentare • Bundle – putIntExtra(…) – putBooleanExtra(…) – getStringExtra() – getIntExtra() – getBooleanExtra() –… 9 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 10. Cum folosim Intent-urile? 10 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 11. Mod de folosire • Metode care emit Intent-uri: – void startActivity (Intent i) – void startService (Intent i) – void sendBroadcast (Intent i, String permission) • Sistemul va cauta componenta cea mai potrivita pentru a trata intentia. 11 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 12. Cautarea • Cautarea componentei se realizeaza dupa: – ACTION – TYPE (de obiei este extras din DATA) – CATEGORY • Se determina astfel componenta cea mai potrivita (sau o lista de compnente, in cazul in care mai multe componente pot trata aceasta intentie). 12 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 13. IntentFilters • Mod de a declara filtre de intentii la care pot raspunde diferite componente: – Activitati – Servicii – BroadcastReceivers • Trebuie declarat in Manifest. 13 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 14. Exemplu IntentFilters 1 • Ex: Launcher-ul cere o lista cu toate componentele ce raspund la: – Actiunea: ACTION_MAIN – Categoria: CATEGORY_LAUNCHER 14 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 15. Exemplu IntentFilters 2 • In Manifest 15 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 16. Exemplu IntentFilters 3 • In Manifest 16 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 17. Cum legam activitatile? 17 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 18. Legarea activitatilor • Pornirea unei activitati • Pasarea de parametri noii activitati • Intoarcerea unei valori de la noua activitate 18 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 19. Metode din clasa Activity (1) • Intent getIntent() – Întoarce Intent-ul cu care a fost pornită • void setResult (int resultCode) – Setează valoarea de rezultat ce trebuie întoarsă • void setResult (int resultCode, Intent data) – Setează valoarea de rezultat ce trebuie întoarsă – Adaugă date 19 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 20. Metode din clasa Activity (2) • void onActivityResult (int requestCode, int resultCode, Intent data) • Trebuie suprascrisa • Este apelată de sistem când o activitate întoarce un rezultat. • Parametri – requestCode – codul pus in startActivityForResult(…) – resultCode –codul intors de setResult(…) – data – informațiile suplimentare setate de setResult(…) 20 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 21. Pornirea unei activitati (1) context.startActivity(Intent intent); Intent starter = new Intent(context, ClasaActvitate.class); context.startActivity(starter); 21 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 22. Cum pornim o activitate pasand parametri? 22 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 23. Pornirea unei activitati cu parametri (1) context.startActivity(Intent intent); Intent starter = new Intent(context, ClasaActvitate.class); context.startActivity(starter); starter.putExtra(“parametru1”, valoare); context.startActivity(starter); 23 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 24. Pornirea unei activitati cu parametri (2) • Pentru a prelua parametrii intent-ului, in noua activitate: Intent starter = getIntent(); String parametru1 = starter.getStringExtra(“parametru1”); 24 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 25. Cum pornesc o activitate ce intoarce o valoare? 25 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 26. Activitati ce intorc o valoare (1) • In activitatea initiala: context.startActivityForResult(Intent intent, int requestCode); int requestCode = 100; Intent starter = new Intent(context, ClasaActvitate.class); context.startActivityForResult(starter, requestCode); 26 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 27. Activitati ce intorc o valoare (2) • În noua activitate pornită, pentru a intoarce un rezultat: Intent data = new Intent(this); data.putExtra(“rezultat1”, rezultat1); data.putExtra(“rezultat2”, rezultat2); int resultCode = 200; setResult(resultCode, data); finish(); 27 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 28. Activitati ce intorc o valoare (3) • Inapoi in activitatea initiala, trebuie sa implementam metoda care preia rezultatele: void onActivityResult(int requestCode, int resultCode, Intent data) • requestCode – codul initial pentru a identifica cererea • resultCode – codul intors ca rezultat • data - un Intent care poate contine alte informatii 28 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 29. BroadcastReceiver (I) • Componenta ce permite captarea de anunturi generate de sistem sau informatii generate de alte aplicatii. • Anunturile vin sub forma de Intent-uri. • Exemple de actiuni informative: – “android.intent.action.BATTERY_LOW” – “android.intent.action.ACTION_BOOT_COMPLETED” – “android.intent.action.ACTION_POWER_CONNECTED” 29 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 30. BroadcastReceiver (II) • Extind clasa BroadcastReceiver – void onReceive(Context context, Intent intent) • Trebuie suprascrisă • Nu extinde Context, ci îl primește ca parametru. 30 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 31. Ciclul de viata al unui BroadcastReceiver • Cât timp rulează funcția onReceive() • Un BroadcastReceiver nu poate: – Porni ferestre de Dialog – Executa actiuni asincrone 31 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 32. Exemplu (1) • In Manifest 32 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 33. Exemplu (2) 33 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 34. Referinte • http://pdm.ipworkshop.ro • http://developer.android.com/guide/topics/intents/inten • http://developer.android.com/reference/android/conten • http://developer.android.com/reference/android/conten 34 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 35. Întrebări? 35 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea