一、Intent对象描述
android的应用程序包含三种重要组件:Activity、Server、BroadcastReceiver都是依靠Intent来启动的,Intent实现了封装程序启动程序的意图。
Intent对象大致包含Component、Action、Category、Data、Type、Extra和Flag
二、Intent的属性及intent-filter配置
2.1、ComponentName对象
在主Actvity使用
Intent intent=new Intent();
ComponentName comName=new
ComponentName(MainActivity.this,OneActivity.class);
intent.setComponent(comName);
startActivity(intent);
新建一个OneActivity类获取基本信息
ComponentName conName= getComponentName();
oneEdit.setText("PackageName="+conName.getPackageName()+"\n"+"ClassName"+conName.getClassName());
获取之后的结果
2.2、Action、Category属性与intent-filter配置
Action代表一个Intent的抽象动作,而Category可以说是这个Action的附加属性
可以直接设置行为来对启动一个Activity
Intent intent=new Intent(); intent.setAction("android.intent.action.KAISHIKUAIDIAN");
startActivity(intent);
我们可以用以下方法来获取启动该Activity的Action和Category
getIntent().getAction()
getIntent().getCategories()
可以利用Intent来获取电话簿,同时获取系统联系人是需要权限的,查看不用
//权限
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
//代码
Intent intent=new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("vnd.android.cursor.item/phone");
startActivity(intent);
2.3、Data、Type属性与intent-filter配置
Data属性通常用于向A窗体哦你属性提供操作的数据,Data属性接受一个Uri对象
Uri字符串满足以下格式
scheme://host:port/path
先调用setType那么就会被setData覆盖,反之则相反
intent.setData(Uri.parse("lee:www.fkjava.org:8888/test"));
intent.setType("vnd.android.cursor.item/phone");
只有使用才可以同时存在
intent.setDataAndType()
Extra可以在不同的Activity之间传递数据是个经常使用的属性