Intent:活动之间穿梭

Intent

Intent 是 Android 各组件间进行交互的一种重要方式,他不仅可以指明当前组件的动作,还可以在不同组件间传递数据。Intent 一般可以用于启动活动、启动服务及发送广播等场景。
Intent 大致可以分为两种:

  • 显示 Intent
    intent 有多个函数的重载,其中一个是 Intent(Context packageContext, Class<?>)。这个方法接受两个参数,第一个接受一个 Context 上下文环境,第二个参数是你要启动的活动类名。最后调用 startActivity(intent) 启动。由于这个方法意图非常明显所以是显示 Intent。
    例子:
    新建一个 IntentTest 项目,MainActivity 默认创建为主活动,再创建第二个活动SecondActivity。修改activity_main.xml,添加一个Button 用于启动第二个活动。
    1.PNG
    接着修改MainActivity
    2.PNG
    到这里已经完成,可以运行了。
  • 隐式 Intent
    隐式 Intent 并不明确指出我们要启动的活动,而是配置了一系列更为抽象的 action 和 category,然后交由系统分析这个 Intent,并帮助我们找出合适的活动启动它。这里再建第三个activity -ThirdActivity,让 ThirdActivity 响应隐式 intent。修改 AndroidManifest.xml 中注册的ThirdActivity

    3.PNG
    在 action 中我们指明了当前活动可以响应 <com.wangzhihai.intenttest.ACTION_ATART/> 这个action,这个 action 可以自己随意制定。而 category 标签添加了一些附加信息,更准确的指定了当前活动能够响应的 intent 可能带有 category。只有同时满足这两个标签的内容,活动才能响应 intent。修改 SecondActivity
    4.PNG
    这里 Intent 里的字符串要和在 AndroidManifest.xml 里声明的保持一致。代码里之所以没有 category,是因为声明的 category 是default。到这里已经完成,可以运行了。

  • 更多隐式 Intent 用法
    隐式 Intent 不仅可以启动自身程序内的活动,还可以启动其他程序的活动。例如浏览一个网页,你没必要自己写一个浏览器只需要调用系统的浏览器来打开就可以了。修改 MainActivity

    5.PNG
    这样就 OK 了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。