在Android系统中,应用程序一般有多个 Activity, Intent 可以实现不同 Activity 之间的切换和数据传递。
显式启动
显式启动需要在 Intent 中指明启动的 Activity 所在的类。
关键代码:
//1.创建一个 Intent,并为它指定当前程序的上下文,以及要启动的 Activity
Intent intent = new Intent(SplashActivity.this,MainActivity.class);
//2.把创建好的 Intent作为参数传递给 startActivity()方法
startActivity(intent);
可将上述代码,放到事件监听的响应代码里,实现控制从一个 Activity 启动新的 Activity。
隐式启动
隐式启动不需要指明启动哪一个 Activity ,而由系统来决定。
选择隐式启动 Activity,Android 系统会在程序运行时解析 Intent,并根据一定的规则对 Intent 和 Activity 进行匹配,使 Intent 上的动作、数据与 Activity 完全吻合。//匹配的组件可以是程序本身的 Activity,也可以是 Android 内置的 Activity,还可以是第三方应用程序提供的 Activity。
关键代码:
//Intent构造函数第一个参数是 Intent 需要执行的动作;第二个参数是URI,表示需要传递的数据
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("https://my.oschina.net/zhangyujian/blog"));
startActivity(intent);
说明:ACTION_VIEW 表明需要启动具有浏览功能的 Activity,再根据 URI 判断浏览电话号码还是浏览网页
Intent 常用动作
动作 | 简要说明 |
---|---|
ACTION_ANSWER | 接听电话 |
ACTION_CALL | 拨打电话 |
ACTION_DELETE | 删除所提供数据 |
ACTION_DIAL | 打开拨号界面 |
ACTION_EDIT | 编辑所提供数据 |
ACTION_INSERT | 当前位置插入新项 |
ACTION_PICK | 列表中选取一项 |
ACTION_SEARCH | 搜索动作 |
ACTION_SENDTO | 向提供的联系人发信息 |
ACTION_SEND | 发送数据 |
ACTION_VIEW | 浏览功能(浏览器/拨号) |
ACTION_WEB_SEARCH | Web搜索 |