


startActivity() - a method you can use to start an activity.
Bundle. It contains data can be used by the receiving component.
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);
startService(Intent) - As the name says this method starts the other services and is used to start a service via intents.
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);
finish() 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);
}
startActivityForResult(), then the begun activity is called a subActivity.
finish().
@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();
}
onActivityResult() 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();
}
}
}
<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>
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);
}
});
}
}
<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>
<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>
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);
}
});
}
}
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);
}
});
}
}