Android编程——intent详解

1.介绍

Intent可以启动Activity,也可以启动Service,还可以发起广播Broadcasts
Intent的中文意思是“意图,意向”,这个类用于提供信息以供对应的函数使用

Intent的对应函数:

组件名称 函数名称
Activity startActvity()
Service startService()
bindService()
Broadcasts sendBroadcasts()
sendOrderedBroadcasts()
sendStickyBroadcasts()

Intent的重要成员:

成员名称 释义
Action 动作(意图)
Data 传递的数据
extras 额外的数据
category 目标所具有的特征
type 目标所能处理的数据类型
component 目标组件的包名或类名

2.应用

//AndroidManifest.xml
<activity android:name=".TestActivity">
  <intent-filter>
    //可以理解为给组件添加标签,用以找到和标签对应的组件
    //系统定义的标签,与其绑定的组件有不同的作用
    //比如:activity:电话,短信,联系人,网页浏览,....
    <action android:name="com.example.nihuai.intent.action.Test"/>
    //Intent默认参数,必须添加
    <category android:name="android.intent.category.DEFAULT"/>  
  </intent-filter>
</activity>

//Activity.java
//从A窗口跳转到B窗口,不带数据
public void gotoTestActivity1(View view)
{
   1.隐式(系统会去注册的组件中找和标签匹配的组件,和其绑定的类)
   //请参考上面的:AndroidManifest.xml
   Intent intent = new Intent("com.example.nihuai.intent.action.Test");
   //从A窗口跳转到B窗口
   startActivity(intent);
}

//Activity.java
//从A窗口跳转到B窗口,不传递数据
public void gotoTestActivity2(View view)
{
   2.显示(系统不需要找,参数提供了和组件绑定的类,所以不用添加标签)
   //参数2:和组件绑定的类
   Intent intent = new Intent(A.this,B.class);
   //从A窗口跳转到B窗口
   startActivity(intent);
}

//Activity.java
//从A窗口跳转到B窗口,传递数据
//可在B窗口创建时取出数据
//系统的打电话就是在创建的时候取出数据
//并调用了设置电话号码和拨打电话
public void gotoTestActivity2(View view)
{
   2.显示(系统不需要找,参数提供了和组件绑定的类,所以不用添加标签)
   //参数2:和组件绑定的类
   Intent intent = new Intent(A.this,B.class);
   String data  = "nihuai";
   intent.putExtra("putData",data);
   startActivity(intent);
}

3.总结

intent的成员变量分三类:
1.系统根据标签定位组件:(Action,category,type,Data)
给组件加标签(AndroidManifest.xml)
系统根据提供的标签匹配和组件绑定的类
调用类中的onCreate来创建组件

2.明确的目标组件(component)
设置成员变量内容:setComponent
系统不会在根据标签来匹配对应的组件
因为它指定了和目标组件绑定的类
调用类中的onCreate来创建组件

3.传递数据:(Data,extras)
Data可以当参数传递,也可以当标签来定位组件
数据可以传递给启动的组件
数据可以从启动的组件传递给调用它的组件(上一层组件)

参考书籍:
第一行代码(第2版)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要。 一、什么是Intent...
    困惑困惑困惑阅读 5,522评论 0 0
  • 2.1 Activity 2.1.1 Activity的生命周期全面分析 典型情况下的生命周期:在用户参与的情况下...
    AndroidMaster阅读 8,325评论 0 8
  • APK安装流程系列文章整体内容如下: APK安装流程详解0——前言APK安装流程详解1——有关"安装ing"的实体...
    隔壁老李头阅读 14,886评论 15 59
  • 谁也不知道我们死后究竟会经历什么。无论怎么理智,我都希望那之后是开启另一段旅程。 主题不算新颖,幽冥界的爱恋,因为...
    果大喵喵阅读 2,325评论 0 0
  • 故事发生的那天也下着大雨 ,我对着电话说出了分手两个字,电话那头的你沉默了许久没有说话。我心里总觉得有点不舒服,总...
    花千鼠阅读 3,073评论 4 0

友情链接更多精彩内容