Android活动总结四:使用Intent在活动之间穿梭

        Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可被用于启动活动、启动服务以及发送广播等场景。

        Intent大致可以分为两种:显示Intent和隐式Intent。

        第一种:显示Intent

        Intent有多个构造函数的重载,其中一个是Intent(Context packageContext, Class<?>cls) 。这个构造函数接收两个参数,第一个参数Context 要求提供一个启动活动的上下文,
第二个参数Class 则是指定想要启动的目标活动,通过这个构造函数就可以构建出Intent
的“意图”。然后我们应该怎么使用这个Intent呢?Activity类中提供了一个startActivity() 方
法,这个方法是专门用于启动活动的,它接收一个Intent 参数,这里我们将构建好的Intent传入startActivity() 方法就可以启动目标活动了。

button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        startActivity(intent);
    }
});

        第二种:隐式Intent

        相比于显式Intent,隐式Intent则含蓄了许多,它并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action 和category 等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动。

        通过在<activity> 标签下配置<intent-filter> 的内容,可以指定当前活动能够响应的
action 和category ,打开AndroidManifest.xml,添加如下代码:

<activity android:name=".SecondActivity" >
    <intent-filter>
        <action android:name="com.example.activitytest.ACTION_START" />
        <category android:name="android.intent.category.DEFAULT" />

    </intent-filter>
</activity>

        在<action> 标签中我们指明了当前活动可以响应
com.example.activitytest.ACTION_START 这个action ,而<category> 标签则包含
了一些附加信息,更精确地指明了当前的活动能够响应的Intent中还可能带有的category 。只有<action> 和<category> 中的内容同时能够匹配上Intent中指定的action 和category
时,这个活动才能响应该Intent。

        每个Intent中只能指定一个action ,但却能指定多个category 。

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值