wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Starting Android Activity Using Intent

profile
Fahim
Oct 30, 2017
1 Like
0 Discussions
367 Reads

Intent In Android

Intents basically support you to interact with the  Android parts from the same android applications or with the parts of other applications. For instance, an activity can start an external activity for taking a picture. startActivity() - a method you can use to start an activity.
Bundle. It contains data can be used by the receiving component.
In Android, the reusability of additional application components is known as a task. An application can obtain additional Android components to accomplish a task. For instance, from a component of your application, you can trigger the different component which is already present in the Android system, which handles photos, even if that component is not a portion of your application. In this component, you select a photo and return to your application to use the picked photo.

Starting activities or services

startActivity(intent) - As the name says this method starts the other Activity and this method is defined on the object of whichContext extends.Activity
Intent i = new Intent(this, ActivityB.class);
startActivity(i);

Activities which are originated by separate Android activities are called sub-activities.
startService(Intent)  - As the name says this method starts the other services and is used to start a service via intents.

Sending out Explicit Intent / Implicit intent

explicit intent - when one activity directly targets the other activity in the intent. Explicit Intents specify the component explicitly which should be declared by the Android system, by managing the Java class as the identifier.
how you can build an explicit intent to start the activity.
Intent i = new Intent(this, SecondActivity.class);
i.putExtra("Key1", "This value for SecondActivity");
i.putExtra("Key2", "This value SecondActivity");
 Implicit intents the action which should be performed optionally which provides content for the action. If an implicit intent is sent to the Android, it searches for all components which are registered for the specific action . If several components are identified by the Android system, the user will get a selection dialog and can decide which component should be used for the intent. For Instance, 
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.google.com"));
startActivity(i);

Retrieving result data from a sub-activity

An activity can be closed via the back button on the phone. In this case, the methodfinish() is performed. If you cause the activity with the methodstartActivityForResult() , you await feedback from the subActivity. Once the subActivity finishes, the methodonActivityResult()  is called and you can do actions based on the result. The method startActivityForResult()you can specify a result code which activity you started. The started activity can also set a result code which the caller can use to figure out if the activity was canceled or not. how to trigger an intent with the startActivityForResult()
public void onClick(View view) {
    Intent i = new Intent(this, SecondActivity.class);
    i.putExtra("Value1", "This value one for SecondActivity");
    i.putExtra("Value2", "This value two SecondActivity");
    // set the request code to any code you like,
    // you can identify the callback via this code
    startActivityForResult(i, REQUEST_CODE);
}
If you use the methodstartActivityForResult(), then the begun activity is called a subActivity.
If the subActivity is finished, it can send data back to its caller via an Intent. This is done in the methodfinish().
@Override
public void finish() {
    Intent data = new Intent();
    data.putExtra("Key1", "hey there what is up. ");
    data.putExtra("Key2", "Hope you are having an amazing day. ");
    setResult(RESULT_OK, data);
    super.finish();
}
Once the subActivity finishes, the methodonActivityResult() in the calling activity is called.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
        if (data.hasExtra("Key1")) {
            Toast.makeText(this, data.getExtras().getString("Key1"),
                Toast.LENGTH_SHORT).show();
        }
    }
}

Android Implicit Intent Example

activity_first.xml


<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".FirstActivity" >  
    <EditText  
        android:id="@+id/url"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignParentTop="true"  
        android:layout_centerHorizontal="true"  
        android:ems="10" />  
    <Button  
        android:id="@+id/search"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_below="@+id/url"  
        android:layout_centerHorizontal="true"  
        android:text="Visit" /> 
</RelativeLayout>  
 FirstActivity.java

package in.wisemonkeys.intents;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
final EditText editText1=(EditText)findViewById(R.id.url);
Button button1=(Button)findViewById(R.id.search);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String url=editText1.getText().toString();
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
}
});
}
}

Android Explicit Intent

activity_explicit_one.xml

<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ExplicitOneActivity" >

<Button
android:id="@+id/intentBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/TextView"
android:layout_marginLeft="65dp"
android:layout_marginTop="38dp"
android:onClick="onClick"
android:text="Call Explicit Two activity" />

<TextView
android:id="@+id/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/intentBtn"
android:layout_alignParentTop="true"
android:layout_marginLeft="18dp"
android:layout_marginTop="27dp"
android:minHeight="60dip"
android:text="Explicit One Activity"
android:textSize="20sp" />

</RelativeLayout>
activity_explicit_two.xml

<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".ExplicitTwoActivity" >  
  
    <Button  
        android:id="@+id/intentBtn"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignParentLeft="true"  
        android:layout_below="@+id/TextView"  
        android:layout_marginLeft="65dp"  
        android:layout_marginTop="38dp"  
        android:onClick="onClick"  
        android:text="Call Explicit one activity" />  
  
    <TextView  
        android:id="@+id/TextView"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignLeft="@+id/intentBtn"  
        android:layout_alignParentTop="true"  
        android:layout_marginLeft="18dp"  
        android:layout_marginTop="27dp"  
        android:minHeight="60dip"  
        android:text="this is Explicit Two Activity"  
        android:textSize="20sp" /> 
  
</RelativeLayout>  

ExplicitOneActivity.java


package in.wisemonkeys.intents;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class ExplicitOneActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_explicit_one);

Button button1=(Button)findViewById(R.id.intentBtn);

button1.setOnClickListener(new OnClickListener(){

public void onClick(View view) {

Intent i = new Intent(getApplicationContext(), ExplicitTwoActivity.class);

i.putExtra("Value1", "Hello from One");

i.putExtra("Value2", "Hii ExplicitOneActivity");

startActivity(i);

}

});

}

}

ExplicitTwoActivity.java


package in.wisemonkeys.intents;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class ExplicitTwoActivity extends Activity {


@Override

public void onCreate(Bundle bundle) {

super.onCreate(bundle);

TextView tv=new TextView(this);

tv.setText("ExplicitTwo activity");

setContentView(R.layout.activity_explicit_two);

Bundle extras = getIntent().getExtras();

String value1 = extras.getString("Value1");

String value2 = extras.getString("Value2");

Button button1=(Button)findViewById(R.id.intentBtn);

button1.setOnClickListener(new OnClickListener(){

public void onClick(View view) {

Intent i = new Intent(getApplicationContext(), ExplicitOneActivity.class);

startActivity(i);

}

});

}

}

Comments ()


Sign in

Read Next

Why You Should Not Use Free VPNs

Blog banner

IoT Evolution

Blog banner

Difference Between Classification And Clustering

Blog banner

Pro-Tips On How To Keep your Foot Healthy

Blog banner

Ethical Issues in Data Science and Role of Data Science in Smart Cities

Blog banner

memory cache

Blog banner

Web Site

Blog banner

Memory management

Blog banner

Note Taker App

Blog banner

Lifestyle of a photographer

Blog banner

COMMUNICATION

Blog banner

Data-Driven Prediction of Virtual Item Prices in Online Games

Blog banner

MEMORY MANAGEMENT FILE

Blog banner

Gis in agriculture and farming

Blog banner

Why Consistency in Eating Habits Matters and How Meal Maharaj Makes It Easy

Blog banner

10 Interesting Facts about Death Note

Blog banner

Exploring the Power of Encase Forensic Tools: Unraveling Digital Mysteries

Blog banner

Business-to-Business

Blog banner

Service transition principles

Blog banner

Social Media Marketing Trends 2022

Blog banner

BENIFITS OF YOGA

Blog banner

The Importance of Data Quality Management in Data Science

Blog banner

Decoding Confusion Matrix

Blog banner

Operating System

Blog banner

ASANA- A Management System.

Blog banner

Evolution of Operating System

Blog banner

EMAIL INVESTIGATION

Blog banner

Health and fitness in technology

Blog banner

Social Network Analysis: Ek Naya Nazariya Data Science Mein

Blog banner

Subnet Masking

Blog banner

How Cyber Forensics use in AI

Blog banner

Self managing devices

Blog banner

Functions Of Operating Systems

Blog banner

All you need to know about “Off-page SEO”

Blog banner

Memory input output management

Blog banner

SEIZING DIGITL EVIDENCE AT THE SCENE

Blog banner

OS PROCESS DESCRIPTION AND CONTROL-SARVAGYA JALAN

Blog banner

Having passion in life

Blog banner

Top 5 Places To Stay And Visit In Berlin, Germany

Blog banner

Simple Ways of Avoiding Basic Mistakes in Smart Phone Security

Blog banner

Is it important to follow all the trends that come up on social media?

Blog banner

MailChimp

Blog banner