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
发出的红包

打赏作者

stoneson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值