Android中的Intent对象完全解析

2019-12-10 18:13:40刘景俊

创建好Intent之后,你就可以通过它告诉Android希望启动新的Activity了。

startActivity(i);

Activity启动后显示界面如下:


三、Intent的构造函数
公共构造函数:
1、Intent() 空构造函数
2、Intent(Intent o) 拷贝构造函数
3、Intent(String action) 指定action类型的构造函数
4、Intent(String action, Uri uri) 指定Action类型和Uri的构造函数,URI主要是结合程序之间的数据共享ContentProvider
5、Intent(Context packageContext, Class<?> cls) 传入组件的构造函数,也就是上文提到的
6、Intent(String action, Uri uri, Context packageContext, Class<?> cls) 前两种结合体
Intent有六种构造函数,3、4、5是最常用的,并不是其他没用!
Intent(String action, Uri uri)  的action就是对应在AndroidMainfest.xml中的action节点的name属性值。在Intent类中定义了很多的Action和Category常量。
示例代码二:

Intent intent = new Intent(Intent.ACTION_EDIT, null);
startActivity(intent);

示例代码二是用了第四种构造函数,只是uri参数为null。执行此代码的时候,系统就会在程序主配置文件AndroidMainfest.xml中寻找<action android:name="android.intent.action.EDIT" />对应的Activity,如果对应为多个activity具有<action android:name="android.intent.action.EDIT" />此时就会弹出一个dailog选择Activity。
如果是用示例代码一那种方式进行发送则不会有这种情况。
利用Intent在Activity之间传递数据
在Main中执行如下代码:

 Bundle bundle = new Bundle();
 bundle.putStringArray("NAMEARR", nameArr);
 Intent intent = new Intent(Main.this, CountList.class);
 intent.putExtras(bundle);
 startActivity(intent);