安卓 关于Intent四个属性的总结

1、Component属性:

Component其实就是 Intent 主要功能属性,见下面代码:

public class ComponentAttr extends Activity{

   public void onCreate(Bundle savedInstanceState){
    ....
       Button btn = (Button)findViewById(R.id.btn);
       btn.setonClickListener(new OnClickListener(){
            public void onClick(View v){
                  ComponentName comp = new ComponentName(ComponentAttr.this,  OtherActivity.class);
                  Intent i = new Intent();
                  i.setComponent(comp);
                  startActivity(i);
            }
       });
   }
}


2、Action 属性和 Category属性:

Action属性负责调用Android系统自身的服务。比如 Intent..Action_CALL, 就是调用打电话服务。案例代码:

public class ActionAttr extends Activity{
    public final static String CRAZYIT_ACTION = "org.crazyit.intent.action.CRAZYIT_ACTION";

    onCreate(...){
        ....
        Button btn = (Button)findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener){
               public void onClick(View view){
                      Intent i = new Intent();
                      i.setAction(ActionAttr.CRAZYIT_ACTION);
                      startActivity(i);
               }
        });

    }
}
因为这里的 Intent 是隐式意图,即 new Intent() 中没有写清调用那两个Activity或Service,所以要靠<intent-filter></intent-filter> 来判别。在AndroidMenifest.xml 中:

<activity name=".ActionAtrr">
    <intent-filter>
        <action   android:name="org.crzayit.intent.action.CRAZYIT_ACTION" />
    <intent-filter>
</activity>

总结一些 常见的Action 常量和 Category 常量功能。

Action:

ACTION_MAIN  —— android.intent.action.MAIN —— 应用程序入口

ACTION_CALL —— android.intent.action.CALL—— 直接性指定用户打电话

ACTION_SEND —— android.intent.action.SEND —— 向其他人发送数据

Category:

CATEGORY_DEFAULT —— android.intent.category.DEFAULT —— 默认的Category

CATEGORY_LAUNCHER —— android.intent.category.LAUNCHER —— Activity 显示顶级程序


3、Data、Type属性和 intent-filter 属性:

Data属性用来向 Action 属性提供操作数据。Data 属性接受一个 URI 对象,这个URI 对象通常以字符串形式来表示:

比如:content :// com.android.contacts/contacts/1

表示:contant前缀:表示该数据类型为“联系人信息”

//com.android.contacts/contacts/1: 表示操作_id 为1的联系人数据类型来启动特定的应用程序,并对指定数据执行相应的操作。



下面介绍在Intent中 Action 和 Data属性组合的一些形式:

btn.setOnClickListener(new OnClickListener(){
    public void onClick(View view){
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:138XXXXXX"));
        startActivity(intent);
    }

})



















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值