package com.itheima.jump;
import
android.net.Uri;
import
android.os.Bundle;
import
android.app.Activity;
import
android.content.Intent;
import
android.view.Menu;
import
android.view.View;
public
class MainActivity
extends
Activity { @Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
/**
* 跳转至打电话activity * 跳转至其他应用的activity * 隐式跳转:通过指定action和data *
@param
v
*/
public
void
click1(View v){ Intent intent =
new
Intent();
//
隐式意图
intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:110"
)); tel是安卓默认的打电话Activity的前缀
//
跳转
startActivity(intent); }
/**
* 跳转至secondActivity * 在本应用中跳转 *
@param
v
*/
public
void
click2(View v){ Intent intent =
new
Intent();
//
cls:直接指定目标Activity的类名
//
显示意图 intent.setClass(
this, SecondActivity.
class);
//
字节码
startActivity(intent); }
/**
* 显示跳转至拨号器
*/
public
void
click3(View v){ Intent intent =
new
Intent();
//
指定目标Activity的包名和类名,如果Activity所在的包跟应用包名(com.android.dialer)同名,那么可以省略不写 intent.setClassName("com.android.dialer", ".DialtactsActivity"
); startActivity(intent); }
/**
* 隐式跳转至拨号器
*/
public
void
click4(View v){ Intent intent =
new
Intent();
//
隐式设置拨号器的动作
intent.setAction(Intent.ACTION_DIAL); startActivity(intent); }
/**
* 隐式跳转至secondActivity *
@param
v
*/
public
void
click5(View v){ Intent intent =
new
Intent(); intent.setAction("com.itheima.sa2");
//
匹配<action android:name="com.itheima.sa2"/>
/*
intent.setData(Uri.parse("heima2:qwe")); 匹配android:scheme="heima2" intent.setType("text/username"); 匹配android:mimeType="text/username"
*/
intent.setDataAndType(Uri.parse("heima2:qwe123"), "text/username"
);
//
系统会自动添加默认的category
intent.addCategory(Intent.CATEGORY_DEFAULT); startActivity(intent); }
/**
* 显式跳转至浏览器
*/
public
void
click6(View v){ Intent intent =
new
Intent();
//
com.android.browser是包名这里是安卓自带的浏览器,com.android.browser.BrowserActivity是类名 intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity"
); startActivity(intent); }
/**
* 隐式跳转至浏览器,这里是隐士的启动,可以启动别的浏览器程序(例如360浏览器不是安卓默认的浏览器是跨应用调用Activity),那么这里会让你选择启动哪个浏览器。 *
@param
v
*/
public
void
click7(View v){ Intent intent =
new
Intent(); intent.setAction(Intent.ACTION_VIEW);//没有指明调用哪个浏览器 intent.setData(Uri.parse("http://www.baidu.com"
)); startActivity(intent); } }
清单文件:
<activity android:name=".SecondActivity">
<intent-filter >
<action android:name="com.itheima.sa"/>
<action android:name="com.itheima.sa3"/>
<data android:scheme="heima"/> java类里面前面也要指明data,并且前缀是heima
<data android:scheme="heima3"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter >
<action android:name="com.itheima.sa2"/>
<data android:scheme="heima2" android:mimeType="text/username"/> mimeType是数据的类型
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
###显式意图和隐式意图的应用场景
* 显式意图用于启动同一应用中的Activity
* 隐式意图用于启动不同应用中的Activity
* 如果系统中存在多个Activity的intent-filter同时与你的intent匹配,那么系统会显示一个对话框,列出所有匹配的Activity,由用户选择启动哪一个
本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/4943636.html,如需转载请自行联系原作者