基础-3 ANDROID Intent

一个android程序又多个组件组成,各个组件使用Intent进行通信,intent 对象包含组件名称,动作,数据,根据intent类容,android启动需要的组件。

Intent寻找目标组件的两种方式:

显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。

 Intent i = new Intent(MainActivity.this,AActivity.class);
 startActivity(i);

隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。

 Intent i = new Intent();
 i.setAction("android.intent.action.DEMO_ACTIVITY");
 startActivity(i);

Intent对象包含的内容
1.componentName(组件名称),指定Intent的目标组件的类名称。

    Intent intent = new Intent();  
    // 构造的参数为当前Context和目标组件的类路径名  
    ComponentName cn = new ComponentName(MainActivity.this, "android.intent.action.DEMO_ACTIVITY");  
    intent.setComponent(cn);  
    startActivity(intent);  

2.action(动作),指定Intent的执行动作,比如调用拨打电话组件。
3.data(数据),起到表示数据和数据MIME类型的作用。不同的action是和不同的data类型配套的,通过设置data的Uri来获得。

 Intent i = new Intent();
 Uri uri = Uri.parse("tel:10086");
 i.setAction(Intent.ACTION_CALL);
 i.setData(uri);
 startActivity(i);

4.category(类别),被执行动作的附加信息。例如应用的启动Activity在intent-filter中设置category。

    <intent-filter>  
        <action android:name="android.intent.action.MAIN" />  
        <category android:name="android.intent.category.LAUNCHER" />  
    </intent-filter>  

5.extras(附加信息),为处理Intent组件提供附加的信息。可通过putXX()和getXX()方法存取信息;也可以通过创建Bundle对象,再通过putExtras()和getExtras()方法来存取。
6.flags(标记),指示Android如何启动目标Activity,设置方法为调用Intent的setFlags方法。常用的Flags参数有:
//如果activity在task存在,拿到最顶端,不会启动新的Activity
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
//如果activity在task存在,将Activity之上的所有Activity结束掉
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//默认的跳转类型,将Activity放到一个新的Task中
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//如果Activity已经运行到了Task,再次跳转不会在运行这个Activity
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值