一、Android开发的四大组件:
1.Activity:(通常展现一个可视化的用户界面)

(1)一个Activity通常就是一个单独的屏幕(窗口)。

(2)Activity之间通过Intent进行通信。

(3)Android应用中每个Activity都必须要在AndroidMainfest.xml配置文件中声明。

2.Service:(用于在后台完成用户指定的操作)

(1)service分为两种:

       a. started(启动):应用程序组件(如activity)调用startService()方法时处于started。b. bound(绑定):应用程序组件调用bindService()方法绑定服务时的状态。

(2)startService()与bindService()区别:

        a. 其他组件调用startService()方法启动,导致服务的onStartCommand()方法被调用。Started状态时,其生命周期与启动它的组件无关,可在后台无限期运行,即使启动服务的组件已经销毁。因此服务完成任务后要调用stopSelf()方法停止,或由                 其他组件调用stopService()方法停止。b. 使用bindService()启动服务,调用者与服务器绑定在了一起,调用者一旦退出,服务也就终止。

(3)开发人员需要在应用程序配置文件中声明全部service,用。

(4)Service后台运行,一般不与用户交互,因此没有图形用户界面。Service组件需要继承Service基类。为其他用户提供后台服务或监控其他组件的运行状态。

3.content provider:(内容提供者)

Android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或读入数据。
多个应用程序间共享数据才需要内容提供者(统一数据访问方式)。
实现数据共享。 ContentProvider用于保存和获取数据,使其对所有程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。
开发者不会直接使用ContentProvider类的对象,通过ContentResolver对象操作。
使用URI唯一标识其数据集,这里的URI以content://作为前缀,表示数据由其管理。

4.broadcast receiver:(用于接收广播)

应用对外部事件过滤,对感兴趣的外部事件(电话呼入等)接收并响应。广播i接收器没有用户界面,但可以启动一个activity或service来响应收到的信息,或用NotificationManager来通知用户。通知可以有多种,如闪灯、震动、播放声音等。一般在状态栏放一个持久的图标,用户可以打开并获取信息。
广播接收者有两种注册方法,程序动态注册和AndroidManifest文件静态注册。
动态注册广播接收器特点是当用来注册的activity关掉后,广播也就失效了。静态注册无需担忧是否被关闭,只要设备是开启状态,广播接收器也是打开的。app未启动,app订阅的广播在触发时也会对它起作用。

Intent
当接收到ContentResolver发出的请求后,内容提供者被激活。而其他三种组件──activity、服务和广播接收器被一种叫做intent的异步消息所激活。intent是一个保存着消息内容的Intent对 象。对于activity和服务来说,它指明了请求的操作名称以及作为操作对象的数据的URI和其他一些信息。比方说,它能够承载对一个activity 的请求,让它为用户显示一张图片,或者让用户编辑一些文本。而对于广播接收器而言,Intent对象指明了声明的行为。比方,它能够对全部感兴趣的对象声 明照相button被按下。

    1.通过传递一个Intent对象至 Context.startActivity()或Activity.startActivityForResult()以加载(或指定新工作给)一个activity。对应的activity能够通过调用 getIntent() 方法来查看激活它的intent。Android通过调用activity的onNewIntent()方法来            传递给它继发的intent。一个activity常常启动了下一个。假设它期望它所启动的那个activity返回一个结果,它会以调用startActivityForResult()来代替startActivity()。比方说,假设它启动了另外一个activity以使用户挑选一张照片,它或许想知道哪张照片被选中了。结果将            会被封装在一个Intent对象中,并传递给发出调用的activity的onActivityResult() 方法。2.通过传递一个Intent对象至Context.startService()将启动一个服务(或给予正在执行的服务以一个新的指令)。Android调用服务的onStart()方法并将Intent对象传递给它。与此类似,一个Intent能够被调用组件传递给 Context.bindService()以获取一个正在执行的目标服务的连接。这个服务会经由onBind() 方法的调用获取这个Intent对象(假设服务尚未启动,bindService()会先启动它)。比方说,一个activity能够连接          至前述的音乐回放服务,并提供给用户一个可操作的(用户界面)以对回放进行控制。这个activity能够调用 bindService() 来建立连接,然后调用服务中定义的对象来影响回放。3.应用程序能够凭借将Intent对象传递给 Context.sendBroadcast() ,Context.sendOrderedBroadcast(), 以及Context.sendStickyBroadcast()和其他类似方法来产生一个广播。Android会调用全部对此广播有兴趣的广播接收器的 onReceive()方法将         intent传递给它们。

点赞
1

评论
2

分享

收藏

打赏

举报
关注
一键三连

点赞Mark关注该博主, 随时了解TA的最新博文
Android开发四大组件
hlf48641715的专栏
894
这个文章主要是讲Android开发的四大组件,本文主要分为 一、Activity详解 二、Service详解 三、Broadcast Receiver详解 四、Content Provider详解 外加一个重要组件 intent的详解。 文章有部分内容来自网络,本文是一个总结性文章。 一、Activity详解 Activty的生命周期的也就是它所在进程的生命周期。
Android基础四大组件详解
芒酱的博客
1万+
Android四大组件Activity,Service,BroadCastReceiver,ContentProvider详解

优质评论可以帮助作者获得更高权重
weixin_41874881
weixin_41874881:
[阿里云双11活动返场最后1天]
1核2G1M40G盘,84元/1年,254元/3年
2核4G3M40G盘,664元/3年
2核8G3M40G盘,1400元/3年
8核16G5M40G盘,7353元/3年
活动地址:https://www.aliyun.com/1111/new?userCode=dow4yhji

[腾讯云双11活动末班车]
1核2G1M50G盘,88元/1年,288元/3年
2核4G3M100G盘,700元/3年
4核8G5M200G盘,2010元/3年
活动地址: https://cloud.tencent.com/act/cps/redirect?redirect=1073&cps_key=2fa23ab757f2e13bb49

Android开发基础(四大组件及Intent)相关推荐

  1. Android开发的四大组件

    Android 开发的四大组件分别是:活动(activity),用于表现功能:服务(service),后台运行服务,不提供界面呈现:广播接受者(Broadcast Receive),勇于接收广播:内容 ...

  2. Android APK开发基础—— 四大组件之Activity

    Activity的启动模式 启动模式的设置 方式一:AndroidMenifest中设置: <activity android:name=".TestActivity" Ac ...

  3. Android架构及四大组件

    Android架构及四大组件 Android架构 Loader层: Linux内核层 硬件抽象层 (HAL) Android Runtime & 系统库 Framework层 App层 Sys ...

  4. Android中的四大组件详解

    Android中的四大组件详解 我们都知道Android系统应用层框架中,为开发者提供了四大组件来便于应用的开发,它们是Activity.Service.BroadcastReceiver.Conte ...

  5. 20175308 2018-2019-2 实验四 《Android开发基础》实验报告

    20175308 2018-2019-2 实验四 <Android开发基础>实验报告 实验要求 参考 Android开发简易教程 完成云班课中的检查点,也可以先完成实验报告,直接提交.注意 ...

  6. 【Android】安卓四大组件之内容提供者

    [Android]安卓四大组件之内容提供者 1.关于内容提供者 1.1 什么是内容提供者 内容提供者就是contentProvider,作用有如下: 给多个应用提供数据 类似一个接口 可以和多个应用分 ...

  7. 20155202 实验四 Android开发基础

    20155202 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握An ...

  8. 2018-2019-2-20175225 实验四《Android开发基础》实验报告

    一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张元瑞 学号:20175225 指导教师:娄嘉鹏 实验日期:2019年5月14日 实验时间:13:45 - 21:00 实验序号:实验 ...

  9. 20175208 张家华 实验四《Android开发基础》实验报告

    一.实验报告封面 课程:Java程序设计        班级:1752班          姓名:张家华        学号:20175208 指导教师:娄嘉鹏 实验日期:2019年5月16日 实验时 ...

最新文章

  1. 来认识世界上第一支AI基金:模仿股票分析师 365天无间断工作
  2. java程序实验总结_Java Socket 编程实验总结
  3. React-Native Navigator 过渡动画卡顿的解决方案
  4. tcp协议与粘包现象【转http://www.cnblogs.com/wzd24/archive/2007/12/24/1011932.html】
  5. java jdk API中英文下载
  6. YOLOv5算法详解
  7. 立足优势,你的网站会更精彩
  8. html.parser python_python模块之HTMLParser
  9. 改logback logstash-logback-encoder 框架本身的日志级别
  10. linux编译lnx文件命令_linux命令dd
  11. Java中的list---ArrayList与LinkedList
  12. Atitit 游戏引擎---物理系统(1)------爆炸效果
  13. excel 案例素材_盘点 | 十分钟进阶Excel数据可视化
  14. 数据挖掘概念与技术_第三版_课后习题
  15. DP动态规划--m处理器问题- m processors(FZU - 1442)
  16. 单机征途mysql步骤不对_征途单机版架设中场景服务器启动失败?这是为什么? 你怎么解决的啊?告诉我 谢谢...
  17. linux lzma命令,Ubuntu: 压缩与解压缩LZMA文件
  18. python md5计算
  19. 2017年软考程序员下午题第二题
  20. 如何登录数据库和运行

热门文章

  1. python selenium爬虫需要账号和密码登陆的网页_如何使用selenium和requests组合实现登录页面...
  2. python可视化拖拽平台_python 有没有类似 VS 那种可以拖拽界面的 IDE?
  3. day8 java的静态与实例
  4. python安装第三方库时报错 SyntaxError: invalid syntax
  5. 计算机积木游戏,乐高积木模拟器
  6. 服务器虚拟化相关问题分析,服务器虚拟化后引入的问题分析
  7. java核心技术总结_java 核心技术 读后总结
  8. 小智伴机器人使用说明_智伴机器人丨史上最全功能,玩转小智伴看这里!
  9. java 漏洞挖掘_Java反序列化漏洞的挖掘、攻击与防御
  10. 【爬虫】毕设学习记录:python爬取静态网页(只爬取单页)