`
ck19860613
  • 浏览: 87396 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【Android读书笔记】Android如何知道Intent要做什么

阅读更多

Intent,最简单的回答是装载有数据的动作(an action with it's assotiated data payload),也就是你想要用这个数据做什么。我们可以使用它来调用内部或是外部组件(从我们的应用中调用其他的应用程序),通常是个Activity.

        对于一个给定的Intent,什么组件被调用基本上是依赖于Intent的action和data.要使一个组件能被其他的组件调用,我们需要在AndroidManifest.xml中注册这个活动。就像这样:

<activity android:name="YOUR_ACTIVITY_NAME"
               android:label="Basic View Tests">
    <intent-filter>
         <action android:name="YOUR_PACKAGE_NAME.intent.action.YOUR_ACTIVITY_NAME"/>
         <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

这里注册不仅仅使这个活动可用来被其他组件调用,也表明可以被什么样action的Intent来调用,之后可以这样调用它
        String actionName= " YOUR_PACKAGE_NAME.intent.action.YOUR_ACTIVITY_NAME";
        Intent intent = new Intent(actionName);
        parentActivity.startActivity(intent);

你也可以直接指定要调用的组件完整类名(包名+类名),这样系统就会直接去调用那个类,而不用去判断哪个组件来处理这个intent.如:

        Intent intent = new Intent(parentActivity,YOUR_CLASS_NAME);
        parentActivity.startActivity(intent);

 

有一些系统预定义的action与要调用组件之间有一对一的关系,比如:

Intent.ACTION_DIAL对应电话拨号程序的拨号器Dialer,不需要任何data

Intent.ACTION_CALL对应电话拨号程序的Call,需要setData(Uri.parse("tel:对方号码"))

 

但是,对于ACTION_VIEW通用动作Android如何知道那个活动要被调用,这种情况,Android更多依赖于Intent的data URI.Android会查看URI的模式,检索所有注册的Activities看哪些能够理解这模式,也包括要能够处理VIEW动作,然后调用那个正确的Activity。浏览器Activity注册了针对http数据模式的VIEW intent,在manifest中就像

<activity…..>
      <intent-filter>
             <action android:name="android.intent.action.VIEW" />
             <data android:scheme="http"/>
             <data android:scheme="https"/>
      </intent-filter>
</activity>

e.g.

        Intent intent = new Intent(Intent.ACTION_VIEW);

        intent.setData(Uri.parse("http://www.google.com") );
        parentActivity.startActivity(intent );

这样,系统就知道要打开浏览器,来访问Google了。

分享到:
评论

相关推荐

    第一行代码 android学习笔记 完整版

    Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中系统地介绍了Android...

    Android Intent 学习笔记

    Android Intent 学习笔记

    基于Android Studio开发的笔记APP.rar

    【Android Studio开发笔记APP详解】 Android Studio是Google官方推荐的Android应用开发集成开发环境(IDE),它提供了丰富的功能,使得Android应用开发变得更加高效和便捷。本教程将基于Android Studio,详细解析一...

    Android Activity和Intent机制学习笔记

    ### Android Activity和Intent机制详解 #### 一、Activity机制概览 **1.1 定义及作用** 在Android开发中,Activity是最基本的应用组件之一,可以将其理解为用户界面的一个屏幕。它提供了用户与应用交互的主要场所...

    android studio实现笔记本

    - **Intent**: Android系统中的消息传递机制,用于启动其他Activity或服务。 - **Fragment**: 可以在Activity中嵌入的UI组件,允许创建更复杂的界面结构。 - **AndroidManifest.xml**: 应用的配置文件,声明应用的...

    《疯狂Android讲义》03章读书笔记(含源码)

    《疯狂Android讲义》是Android开发领域的一本经典著作,其第三章主要涵盖了Android系统的基础知识和核心概念,包括但不限于Android应用结构、UI组件、事件处理、数据存储以及线程和多任务处理等方面。以下是对这些...

    最新最全的Android开发笔记

    接着,笔记详细阐述了Android应用的基本结构,包括Activity、Intent、Service和BroadcastReceiver等核心组件。Activity作为用户界面的主要载体,Intent则用于不同组件间的通信。Service用于在后台执行长时间运行的...

    android 开发笔记

    基础入门二则可能深入到更具体的主题,如Activity和Intent的概念,它们是Android应用中用户界面和不同组件间通信的核心。开发者还会学习布局设计,使用XML来构建用户界面,并了解Android的生命周期管理。此外,可能...

    Android开发教程之Intent详细讲解--千锋培训

    【Android开发教程之Intent详细讲解】 Intent在Android开发中扮演着至关重要的角色,它是四大组件(Activity、Service、BroadcastReceiver、ContentProvider)间通信的主要桥梁。Intent不仅描述了一个操作的动作,...

    《疯狂Android讲义》02章读书笔记(含源码)

    《疯狂Android讲义》是Android开发领域的一本经典著作,其第二章主要涵盖了Android系统的基础知识和开发环境的搭建。这一章的学习对于初入Android开发的程序员来说至关重要,因为它为后续深入学习打下了坚实的基础。...

    Android开发笔记全集

    《Android开发笔记全集》是一份综合性的学习资源,涵盖了Android应用开发的多个核心领域,旨在帮助开发者系统地掌握Android平台的开发技能。这个压缩包包含的文件名为“Android开发笔记”,暗示着它可能是一个系列的...

    Android代码笔记齐全

    这份"Android代码笔记齐全 入门教程"显然是一个全面的学习资源,旨在帮助初学者逐步掌握Android应用开发的基础和进阶内容。下面,我们将深入探讨这些知识点,按照压缩包中文件名的顺序进行。 **day01**通常涵盖的是...

    Android笔记(3)---Activity和Intent

    在Android应用开发中,Activity和Intent是两个至关重要的概念,它们构成了Android应用程序的基本交互机制。这篇笔记我们将深入探讨这两个核心组件及其之间的关系。 首先,Activity是Android中的一个基础组件,可以...

    Android自学笔记-14-意图(Intent)

    本自学笔记将深入探讨Intent的使用、分类及其在Android系统中的作用。 Intent主要用于启动一个活动(Activity)、服务(Service)或者传递数据。在Android应用中,活动是用户界面的基本单元,而服务则在后台执行...

    Android Intent和Intent Filter详解

    Intent是Android系统中用于组件间通信的重要机制,它描述了想要执行的操作和可能涉及的数据。Intent对象包含了组件信息、动作(Action)、数据(Data)、类别(Category)以及额外的数据(Extras)。理解Intent的...

    android的intent学习笔记.pdf

    android的intent学习笔记.pdf

    黑马Android培训笔记

    【Android培训笔记详解】 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的API和工具。这篇“黑马Android培训笔记”是专为学习Android编程设计的,旨在帮助初学者快速掌握Android开发的...

    黑马Android基础笔记

    《黑马Android基础笔记》是一份全面且深入的Android开发学习资料,主要针对初学者和希望巩固基础知识的开发者。这份笔记涵盖了Android开发的核心概念和技术,旨在帮助读者构建坚实的Android开发基础。 1. **Android...

    全网最全Android开发笔记.zip

    笔记包含了大量的实例代码、技术解析和实战经验,对于想要深入学习Android开发的程序员来说,是一份宝贵的资源。 一、Android系统架构 Android系统由五大部分组成:Linux内核、硬件抽象层(HAL)、库、应用程序框架...

    android基础笔记

    Android基础笔记是对Android操作系统开发入门知识的系统整理。Android是一种基于Linux内核的开源移动设备操作系统,由Google主导开发并广泛应用于智能手机、平板电脑及智能电视等设备。这份笔记涵盖了Android开发的...

Global site tag (gtag.js) - Google Analytics