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,由用户选择启动哪一个

最新文章

  1. iOS -- 轮播图
  2. Beta阶段第二次Scrum Meeting
  3. SQL Server Management Studio 已停止工作 异常错误
  4. 防止sql注入
  5. Spring实现文件上传
  6. Gray Code
  7. mac svn 更新到新版本1.8
  8. Android——GridView(网格视图)相关知识总结贴
  9. UIScrollview自动布局,UIScrollviewAutolayoutDemo
  10. 无责任Windows Azure SDK .NET开发入门篇一[Windows Azure开发前准备工作]
  11. CY7C68013A的一点总结
  12. PIE使用阴影后的背景透明方法
  13. 使用Angular CLI进行单元测试和E2E测试
  14. 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
  15. E - Just a Hook HDU - 1698 线段树区间修改区间和模版题
  16. exec与match方法的区别
  17. 使用soap遇到的缓存问题
  18. BZOJ1201 [HNOI2005]数三角形 大力出奇迹
  19. 从零开始学Kotlin-操作符(3)
  20. python3 IEDriver抓取时报数据

热门文章

  1. but has failed to stop it. This is very likely to create a memory leak(c3p0在Spring管理中,连接未关闭导致的内存溢出)
  2. JNI/NDK开发指南(一)—— JNI开发流程及HelloWorld
  3. vs2015 Xamarin.Android安装
  4. android中handler中 obtainmessge与New message区别
  5. leetcode面试准备: Substring with Concatenation of All Words
  6. Learning WCF Chapter2 Service Contracts
  7. CentOS6.5 x86_64 配置Broadcom 43XX系列 无线网卡驱动
  8. bzoj1822
  9. 【转】iOS开发:开发证书知识点总结
  10. 理解I/O Completion Port