android activity intentsq

14

Click here to load reader

Upload: perpetrotech

Post on 19-May-2015

195 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Android activity intentsq

Welcome

Every Day is a new Beginning

Page 2: Android activity intentsq

Major Application components

Any Android application must have at least one amongst the following components:

• Activity

• Intent & Intent Filters

• Broadcast Receivers

• Services

• Content Providers

Page 3: Android activity intentsq

Activity

•Activity is an application component which provides User Interface(UI) to any application

•An application can have any number of activities but only one of them can have the focus at any given time of the application’s visible lifetime

•All other activities are moved to a “back-stack” which uses First In First Out (FIFO) mechanism to handle those activities

•All activities have a set of methods known as “Callback methods”, which will get triggered during different stages of an Activity lifecycle

•Views control rectangular space within an activity & interacts with the user

•Widgets = Views + Visual elements + business logic

•Layouts are special type of Views, which are derived from ViewGroup group

Page 4: Android activity intentsq

Activity Lifecycle

Page 5: Android activity intentsq

Activity – Callback methods

• onCreate() – triggered when the Activity is created

• onStart() – triggered when the Activity is started

• onResume() – triggered when the Activity is resumed after pause

• onPause() – triggered when the Activity is paused

• onStop() – triggered when the Activity goes out to background stack

• onDestroy() – triggered when the Activity is destroyed

Page 6: Android activity intentsq

States of an Activity

An activity can be in anyone of the states in its entire lifecycle:

• Resumed – Activity is in running

• Paused – Activity is paused & visible in the background

• Stopped – Activity is paused & not visible in the background ( in backstack)

Page 7: Android activity intentsq

Start & Stop an Activity

• An activity can be started in two ways :• Using startActivity(Intent intent) method• Using startActivityForResult(int reqCode,int resCode, Intent data) method

• The first method is used to start an activity normally• The second method is used to start an activity when a specific resultant

action is expected. Eg. Choose a phone contact from Contacts application• If an activity is started using second method, the control will be passed to

this method after the expected result – onActivityResult()

• An activity can be stopped/killed in ways:• Using finishActivity() method (Recommended)• Using finish() method

Page 8: Android activity intentsq

How to start an Activity

• An activity can be started from another activity using another application component called Intent.

• A java class with name Sample.java, which extends Activity class must be created.

• An entry in AndroidManifest.xml file should be included• A layout XML file must be created and proper layout should be created in

XML file

• Code snipped to start an activity (using its name):Intent intent = new Intent(this, Sample.class);

startActivity(intent);

Page 9: Android activity intentsq

How to start an Activity

• An activity can also be started without explicitly stating its name but the action that it can perform

Steps:• A java class with name Sample.java, which extends Activity class must be

created.• An entry in AndroidManifest.xml file is included & an action is defined in

Intent_Filter tag• A layout XML file is created and proper layout is created in XML file

• Code snipped to start an activity (using its name):Intent intent = new Intent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);

startActivity(intent);

Page 10: Android activity intentsq

Intents

• Application components are activated through messages called Intents

• Intents provide a facility for late runtime binding between components of same application or different applications as well

• Basically, it is a passive data structure, which holds an abstract definition of an action performed or to be taken

• It is used to start Activities using “startActivity(intent)” method

• It is also used to start or bind Services using “startService(intent)” and “bindService(intent)” methods

• It is also used to send broadcasts using “sendStickyBroadcast(intent)” methods

Page 11: Android activity intentsq

Intent Objects

Every Intent contains at least one of the following objects:

1. Component Name [optional] – Component with Intent is associated

2. Action (mandatory)

3. Category (mandatory at least once) – Category of Action

4. Data [optional & depends on type of Action] – URI & MIME type of data needed to complete Action

5. Extras [optional] – Data needed to complete Action

6. Flags [optional] – Eg. Which task the activity should belong to ?

Page 12: Android activity intentsq

Intent Types Intents can be classified into following two types:

• Explicit Intents – Associated component name is explicitly mentionedIntent intent1 = new Intent(this,ActivityTwo.class);startActivity(intent);

• Implicit Intents – Associated component name is implied (not mentioned)Intent intent = new Intent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);

startActivity(intent);

Page 13: Android activity intentsq

Intent Types & Resolution Intent Resolution :• Intents are resolved after undergoing three tests by Intent Filter• Intent Filter filters the suitable components based on the expected action

and other input data

Intent Filter performs the tests in the following order and finally resolves the component(s) associated with the Intent

1. Action Test2. Data Test3. Category Test

• Those components which pass the Action Test will be subjected to Data Test & those which pass the Action Test will be subjected to Category Test

Page 14: Android activity intentsq

Thank You

Facebook.com/PerpetroTech

Office Address

New No 30/1Velachery Road, Little MountSaidapet, Chennai-15

Website: www.perpetrotech.comMail: [email protected]: +91- 8939707287