基础总结篇之:Intent详细介绍

一.Intent是什么:

翻译过来:意图,简单来说,Intent是系统各组件之间进行数据传递的数据负载者。Android程序中各组件之间交互的一种方式,它不仅可以可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据

启动一个Activity:Context.startActivity(Intent intent);

启动一个Service:Context.startService(Intent service);

绑定一个Service:Context.bindService(Intent service, ServiceConnection conn, int flags);

发送一个Broadcast:Context.sendBroadcast(Intent intent);

二.Intent属性:

1.action :要执行的动作
2..data:即执行动作要操作的数据
3.extras 传递到目标的附加信息
3.category要执行动作的目标所具有的特质或行为归类
4.type:要执行动作的目标Activity所能处理的MIME数据类型
5.component目标组件的包或类名称
6.flag: 标记

1.action 对于有如下声明的Activity可以跳转到指定Activity
<activity android:name=".TestActivity">
<intent-filter>
<action android:name="com.intent.action.Test"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>

TestActivity在其<intent-filter>中声明了<action>,即目标action,如果我们需要做一个跳转的动作,就需要在Intent中指定目标的action,如下:
    public void gotoTestActivity(View view) {
    Intent intent = new Intent("
com.intent.action.Test");
    startActivity(intent);
    }
当我们为Intent指定相应的action,然后调用startActivity方法后,系统会根据action跳转到对应的Activity


2.Extras向下一个Activity传递数据(使用Bundle和Intent.putExtras)

Intent it = new Intent(Activity.Main.this, Activity2.class);
Bundle bundle=new Bundle();
bundle.putString("name", "This is from MainActivity!");
it.putExtras(bundle);       // it.putExtra(“test”, "数据”);
startActivity(it);          // startActivityForResult(it,REQUEST_CODE);


3.component(组件),
指定Intent的的目标组件的类名称。通常 Android会根据Intent 中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果 component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性以后,Intent的其它所有属性都是可选的。

4.Category (种类)
Category是一个字符串。其中包含了应该处理当前Intent的组件类型的附加信息,在Intent对象中可以增加任意多个种类描述
示列:返回系统Home桌面
Intent intent = new Intent();
intent.setAction(intent.ACTION_MAIN);
intent.addCategory(intent.CATEGORY_HOME);
startActivity(intent)

猜你喜欢

转载自blog.csdn.net/qq_34927117/article/details/53164899