Android中Intent

一.Intent的中文意思是“意图,意向”,不同组件组件之间的通信的媒介和信使。
二.Intent由下面几部分组成:动作(Action),数据(Data),分类(Category),类型(Type),组件(Compontent)和扩展信息(Extra)。
三.Intent在寻找目标组件时有两种方法:
第一.通过组件名称直接指定
第二.通过Intent Filter过滤指定
四.Intent封装了他要执行的动作属性:Action和Data。
五.Intent的ComponentName属性
MainActivity:
//实例化组件名称
ComponentName cn=new ComponentName(MainActivity.this,"com.amoke.ch06.app1.MyActivity");
//实例化Intent
Intent intent=new Intent();
intent.setComponent(cn);
startActivity(intent);
MyActivity:
//实例化Intent
Intent intent=this.getIntent();
//获得组件名称对象
ComponentName cn=intent.getCompontent();
六.Intent的Action属性
Action是指Intent要完成的动作,是一个字符串常量。
如ACTION_CALL(打电话),ACTION_EDIT(编辑数据)
1.自定义Action属性
MainACtivity:
public static final String MYACTION="com.a=maker.app.MY_ACTION";
Intent intent=new Intent();
intent.setACTION(MY_ACTION);
startActivity(intent);
MyACtivity:
Intent intent=getIntent();
String action=intent.getAction();
AndroidMainifest.xml
<activity android:name="MyActivity">
<intent-filter>
<action android:name="com.amaker.ch06.app.MY_ACTION">
<categroy anndroid:name="android.intent.category.DEFAULT">
</activity>
2.访问系统Action属性
Intent intent=new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("Vnd.android.cursor.item/phone");
startActivity(intent);
七.Intent的Data属性
Intent的data属性是执行动作的URI和MIME类型,不同的Action有不同的Data数据 指定。
八.Intent的category属性
Intent中的category属性石一个执行Action的附加信息。
例:CATEGORY_LAUNCHER意味着加载程序时,Activity出现在最上面,还有CATEGORY_HOME,则表示回到HOME页面。
Intent i=new Intent();
i.setAction(intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
九.Intent的Extras属性
Intent的Extras属性是添加一些组件的附加信息。
mainActivity:
//实例化Inent
Intent intent=new Intent();
//设置Intent的class属性,跳转到
intent.setClass(MainActivity.this,ResultActivity.class);
//为intent添加额外信息
intent.putExtra("age",et.getText().toString());
//启动Activity
startActivity(intent);
ResultActivity:
Intent intent=this.getIntent();
tv=(TextView)findViewById(R.id.TextView01);
tv.setText(inent.getStringExtra("age"));
十. 系统标准Activity Action应用
十一.Intent的实现策略
1. intent寻找目标组件的方式有两种:
显示intent,这种方式通过指定Intent组件名称来实现。
隐式intent,这种方式通过IntentFilter实现。
2.Intent Filter进行过滤时通常考虑三个属性:Action,Data,Category
3.Action:如Intent指明定了Action,则目标组件IntentFilter的Action列表中就必须包含这个Action,否则不能匹配。
Category:在intent对象中出现的Category属性在IntentFilter中必须出现,否则不能通过测试。
”android.intent.category.DEFAULT“属性是启动Activity默认属性,这个必须添加,否则Category测试失败。
Data:Data是Android要访问的数据和Action和Category声明方式一致。
在AndroidMainifest.xml中
<intent——filter>
<action android:name="android.intent.action.VIEW"/>
<action android:scheme="http" android:path=""www.g.cn/>
<intet-filter>
MainActivity中Intent对象设置Action和Data属性同上
intent.setAction("android.intent.action.VIEW");
intent.setData()Uri.parse("http://www.g.cn");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值