一、Android有四大组件(component):Activity、Service、BroadcastReceiver、ContentProvider。

  1、Activity

    通过startActivity创建新的Activity,通过Intent将信息传递到新从Activity中。

    如果需要返回值,则使用startActivityForResult,并重写onActivityResult方法。在被调用的Activity中,使用setResult将信息传递回调用处。

  2、Service

    使用startService、bindService、unbindService、stopService对Service进行操作。通过Intent传递信息。

    这4个方法调用顺序和注意事项,可以查看日志 Android Service 和 Android Service执行unbind后再次执行bind的问题

  3、BroadcastReceiver

    使用sendBroadcast、registerReceiver、unregisterReceiver。

    register是android.content.ContextWrapper中的方法,而Activity和Service都继承自ContextWrapper,所以Activity和Service都可以注册Receiver。

    注册Receiver的方式有两种:可以不使用registerReceiver和unregisterReceiver,使用Manifest.xml中配置的方式注册Receiver,这种注册方式称为静态注册,Activity声明周期结束后,BroadcastReceiver依然可以接收到发给它的信息;如果使用registerReceiver和unregisterReceiver,就是动态注册,BroadcastReceiver的声明周期跟随Activity或Service的声明周期。

    当这个Activity被销毁的时候,如果没有执行unregisterReceiver,系统会提示是否忘记取消注册。

    sendOrderedBroadcast可以发送有序广播,每个广播在IntentFilter中设置priority属性,通过优先级保证Broadcast的执行顺序,priority值(-1000到1000)越大优先级越高。

  4、ContentProvider

    目前只是通过eoe视频学习了调用其他组件提供信息的使用方法。

二、Intent

  Intent是组件间传递信息的方式。

  这段时间的学习过程中,大多数时间都在使用Intent(Context, <Class ?>)方法构造Intent对象,这种构造对象的方式可以精确的调用Activity、Service、Broadcast等组件。但是缺点也很明显,比如,指定了一个Activity来打开文件,而如果用户没有安装对应的app,就没有办法打开文件。对于这样的需求,可以通过Intent(String action)来实现,需要在Manifest中定义IntentFilter。更多关于Intent的信息,可以查看日志Intent

Android 四大组件和Intent的更多相关文章

  1. Android四大组件之Intent

    Intent不是android几大组件框架,但是确实是android 各大组件之间沟通的桥梁. 尤其Intent对于activity有很大的关系. 一下是我个人对task以及backstack的总结.

  2. Android四大组件之Intent(续2)

    1.你如何通过一个intent来唤醒activity? this.startActivity(intent,request);      2.什么是显式.隐式的intents? 显式:指定组件名,通常 ...

  3. Android四大组件之Intent(续)

  4. Android四大组件之一“广播”

    前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...

  5. android四大组件(简单总结)

    activity 一个Activity通常就是一个单独的屏幕(窗口) Activity之间通过Intent进行通信 android应用中每一个Activity都必须要在AndroidManifest. ...

  6. android四大组件之Broadcast

    广播的概念 现实中:我们常常使用电台通过发送广播发布消息,买个收音机,就能收听 Android:系统在产生某个事件时发送广播,应用程序使用广播接收者接收这个广播,就知道系统产生了什么事件.Androi ...

  7. Android 四大组件之再论service

    service常见的有2种方式,本地service以及remote service. 这2种的生命周期,同activity的通信方式等,都不相同. 关于这2种service如何使用,这里不做介绍,只是 ...

  8. Android四大组件及activity的四大启动模式

    Android四大组件 1. 广播接收者的两种类型: (1)系统广播接收者,就是继承BroadcastReceiver这个类,然后还要在清单文件中注册,注册之后给他一个action.当系统发生了这个a ...

  9. Android成长日记-Android四大组件之Service组件的学习

    1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它 ...

随机推荐

  1. Oracle create tablespace 创建表空间语法详解

    CREATE [UNDO]  TABLESPACE tablespace_name          [DATAFILE datefile_spec1 [,datefile_spec2] ...... ...

  2. JAVA框架 Spring AOP底层原理

    一:AOP(Aspect Oriented Programming)面向切面编程. 底层实现原理是java的动态代理:1.jdk的动态代理.2.spring的cglib代理. jdk的动态代理需要被代 ...

  3. 对寄存器ESP和EBP的一些理解

    PS:EBP是当前函数的存取指针.即存储或者读取数时的指针基地址:ESP就是当前函数的栈顶指针. 每一次发生函数的调用(主函数调用子函数)时,在被调用函数初始时,都会把当前函数(主函数)的EBP压栈, ...

  4. WPF编程,通过Path类型制作沿路径运动的动画一种方法。

    原文:WPF编程,通过Path类型制作沿路径运动的动画一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/de ...

  5. [Oracle][Corruption]究竟哪些检查影响到 V$DATABASE_BLOCK_CORRUPTION

    根据 471716.1,11g 之后,下列动作如果遇到坏块,都会输出记录到  V$DATABASE_BLOCK_CORRUPTION. -  Analyze table .. Validate str ...

  6. python 回溯法 子集树模板 系列 —— 19、野人与传教士问题

    问题 在河的左岸有N个传教士.N个野人和一条船,传教士们想用这条船把所有人都运过河去,但有以下条件限制: (1)修道士和野人都会划船,但船每次最多只能运M个人: (2)在任何岸边以及船上,野人数目都不 ...

  7. 【最详细最完整】在Linux 下如何打包免安装的QT程序?

    在Linux 下如何打包免安装的QT程序? 版权声明:嵌入式linux相关的文章是我的学习笔记,基于Exynos 4412开发板,一部分内容是总结,一部分是查资料所得,大家可以自由转载,但请注明出处! ...

  8. TMS320VC5509的DAC输出TLV5620

    1. TLV5620的SPI数据是11位的 但是看图3和图4,感觉用2个字节应该也可以的,不知道行不行,可以试一试吧 2. 不过可惜的是5509A的SPI没有11位的,有点麻烦,只能先试试用两个字节行 ...

  9. Linux常用rmp包网址

    * HA:http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/ * Openstack:https://r ...

  10. JavaScript组成—— DOM、BOM、ECMAScript

    ECMAScript是JS的核心:提供核心语言功能 DOM(文档对象模型):提供访问和操作网页内容的方法和接口 BOM(浏览器对象模型):提供与浏览器交互的方法和接口 1. DOM(文档对象模型) 1 ...