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:电话,短信,联系人,网页浏览,....
    
    //Intent默认参数,必须添加
      
  


//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版)

你可能感兴趣的:(Android编程——intent详解)