Intent Android Club 2015
Agenda Intent class Explicit activation Implicit activation
2 purposes Operation to be performed (Send ) Event notification (Telegram message came)
I want to... Select contact Take photo Display map
Intent opens... Activity which can do that operation
Intent fields Action – desired operation Data – data associated with intent Category – additional information Type – show mime type Component – exact activity to open Extras – key-value pair Flags – flag about how intent handled
Action ACTION_DIAL ACTION_VIEW ACTION_SEND ACTION_MAIN
Action: example Intent intent = new Intent(); intent.setAction(Intent.ACTION_DIAL); startActivity(intent);
Data Data associated with intent URI(geo, tel, http)
Data: example Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("geo:0.0,0.0")); startActivity(intent);
Data: practice Create application which opens Tashkent in Google Maps Latitude: Longitude:
Data: example 2 Intent intent = new Intent(); intent.setAction(Intent.ACTION_DIAL); Intent.setData(Uri.parse(“tel: ”); startActivity(intent);
Data: practice 2 Create application which dials your best friends number
Data: example 3 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(" m")); startActivity(intent);
Data: practice 3 Create application which opens Facebook website
Category Additional information about Intent CATEGORY_BROWSABLE CATEGORY_LAUNCHER
Type Specifies MIME type of Intent image/png, image/jpg text/html, text/html setType() Intent.setType("text/html");
Type: example final Intent Intent = new Intent(android.content.Intent.ACTION_SEN D); Intent.setType("text/html"); Intent.putExtra(android.content.Intent. EXTRA_SUBJECT, subject); startActivity(intent);
Component Intent intent = new Intent(MainActivity.this, ActivityB.class); startActivity(intent);
Component: practice Create ActivityA Create ActivityB Put button on ActivityA which opens ActivityB
Extra Key-value pair Intent intent = new Intent(A.this, B.class); intent.putExtra(“parol”,”1234”); startActivity(intent);
Extra: practice Create ActivityA Create ActivityB Put button which sends “secret information” to ActivityB Secret information: We are members of Android Club Show secret information in ActivityB
Flags How intent should be handled FLAG_ACTIVITY_NO_HISTORY FLAG_ACTIVITY_NO_ANIMATION
Flags: example Intent intent = new Intent(MainActivity.this, ActivityB.class); intent.setFlags(Intent.FLAG_ACTIVITY_CL EAR_TASK|Intent.FLAG_ACTIVITY_NEW _TASK); startActivity(intent);
Flags: practice Create ActivityA Create ActivityB Create ActivityC Put button on A which opens B Put button on B which opens C and close A and C
Activation Explicit (Явный) Implicit (Неявный)
Implicit activation A) Calling activity B) IntentFilter
Intent resolution ACTION DATA CATEGORY
Homework 1: extra Create ActivityA Create ActivityB Put 2 EditTexts: username and password Pass username and password to ActivityB Show them in TextViews
Homework2: flag Create ActivityA Create ActivityB Open ActivityB without animation
Homework3: implicit activation Create ActivityA From ActivityA, startActivity with ACTION_DIAL intent Create ActivityB Define for ActivityB
Homework4: implicit activation Create ActivityA From ActivityA, startActivity with _APP(category) intent Create ActivityB Define for ActivityB
Homework: Action+Data: Try to put ACTION_CALL instead of ACTION_DIAL Tell me what is difference? Do not forget to add android.permission.CALL_PHONE
Questions? Any questions?
Thank you Thank you for your attention!