`

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");

  
       

         
  

  




    

 
  
 

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics