Android四大组件简介

Android AMS——概述(一) 1、Activity生命周期管理Activity 生命周期是指在 Android 应用中,一个 Activity 从创建到销毁的整个过程。了解 Activity 生命周期非常重要,因为它涉及到应用的状态变化、内存管理以及用户交互等方面。onCreate()当 Activity 第一次创建时,系统会调用onCreate()方法。在这个阶段,可以进行一些初始化工作,例如设置布局、绑定数据等。一般来说,该方法执行完后,Activity 会进入 "Created" 状态。onStart() 阅读详情

android四大组件分别为activity、service、content provider、broadcast receiver。

1、四大组件基本介绍

  • activity
    • 一个activity通常是一个单独的手机界面。
    • 一个应用程序一般都是由多个activity组成的。
    • Activity之间通过Intent进行通信。
    • 任务栈(task stack)(别名back stack后退栈) 记录存放用户开启的activity的。
    • 任务其实就是activity的栈,它由一个或多个Activity组成,共同完成一个完整的用户体验。栈底的是启动整个任务的Activity,栈顶的是当前运行的用户可以交互的Activity,当一个activity启动另外一个的时候,新的activity就被压入栈,并成为当前运行的activity。而前一个activity仍保持在栈之中。当用户按下BACK键的时候,当前activity出栈,而前一个恢复为当前运行的activity。栈中保存的其实是对象,栈中的Activity永远不会重排,只会压入或弹出。
    • 一个应用程序一被开启系统就给他分配一个任务栈,当所有的activity都退出的时候,任务栈就清空了。
    • Android系统是一个多任务(Multi-Task)的操作系统,可以在用手机听音乐的同时,也执行其他多个程序。每多执行一个应用程序,就会多耗费一些系统内存,当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统就会觉得越来越慢,甚至不稳定。为了解决这个问题,Android引入了一个新的机制,即生命周期(Life Cycle)*(以后详解)。
    • 开发人员需要在应用程序配置文件中声明全部的service,使用标签。

  • service
    • service用于在后台完成用户指定的操作。
    • 启动模式有两种:
      • started(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态。
      • bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。
    • startService()与bindService()区别:
      • started service(启动服务)是由其他组件调用startService()方法启动的,服务执行onCreate(),onStart()方法,这导致服务的onStartCommand()方法被调用。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。因此,服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调用stopService()方法停止。
      • (b)使用bindService()方法启用服务,服务执行onbind(),调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。
    • 开发人员需要在应用程序配置文件中声明全部的service,使用标签。
    • Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。
  • content provider
    • android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。
    • 只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。
    • ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。
    • 开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。
    • ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。
  • broadcast receiver
    • 你的应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。
    • 广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。
    • 动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。

四大组件的注册

  • 4大基本组件都需要注册才能使用,每个Activity、service、Content Provider都需要在AndroidManifest文件中进行配置。AndroidManifest文件中未进行声明的activity、服务以及内容提供者将不为系统所见,从而也就不可用。而broadcast receiver广播接收者的注册分静态注册(在AndroidManifest文件中进行配置)和通过代码动态创建并以调用Context.registerReceiver()的方式注册至系统。需要注意的是在AndroidManifest文件中进行配置的广播接收者会随系统的启动而一直处于活跃状态,只要接收到感兴趣的广播就会触发(即使程序未运行)。

四大组件的激活

  • 内容提供者的激活:当接收到ContentResolver发出的请求后,内容提供者被激活。而其它三种组件activity、服务和广播接收器被一种叫做intent的异步消息所激活。

四大组件的关闭

  • 内容提供者仅在响应ContentResolver提出请求的时候激活。而一个广播接收器仅在响应广播信息的时候激活。所以,没有必要去显式的关闭这些组件。Activity关闭:可以通过调用它的finish()方法来关闭一个activity。服务关闭:对于通过startService()方法启动的服务要调用Context.stopService()方法关闭服务,使用bindService()方法启动的服务要调用Contex.unbindService()方法关闭服务。

以后再分别介绍具体实例。愿和大家共同进步。
可以加我的qq:1070379530对我指正。

配置Dot1q终结子接口实现跨设备VLAN间通信示例 示例图 一.实验目的 1.配置Dot1q终结子接口实现跨设备VLAN间通信示例 二.注意事项 1.Dot1q终结子接口和QinQ终结子接口不支持透传不带VLAN Tag的报文, 收到不带VLAN Tag的报文会直接丢弃 2.由于三层以太网子接口不支持VLAN报文,当它收到VLAN报文时,会将VLAN报文当成是 非法报文而丢弃,因此,需要在子接口上将VLAN Tag剥掉,也就是需要VLAN终结 三.VLAN终结简介 1.VLAN终结的实质包含两个方面: ①.对接口接收到报文,剥除VLAN标 阅读详情

相关推荐

Modelsim安装教程以及管理员身份运行patch_dll.bat时找不到文件mgls.dll的解决

Modesim安装教程 Modesim版本有很多,但是安装方式大都相同,我们以modesim.10.5为例,电脑使用的是win10 64位,讲一下安装过程中的步骤以及出现问题的解决方法 一 安装 1.首先解压安装包,在解压的安装包内选择应用程序,右键选择管理员运行。 2.稍等一会,有的电脑会弹出是否允许modesim进行更改,选择 是 即可,然后出现下面的界面,点击下一步。 3.弹出此界面选择安装路径,选择安装路径,我是在D盘新建的文件夹,直接把文件夹中的路径复制在框内。文件夹名称切记不要带中文 4.

weixin_48564372的博客 1万+

知识体系总结(六):Android基础:四大组件与UI控件

服务端/客户端模型不仅仅存在于Web开发中,在Android框架设计中也是这种模式,服务端是所有APP共有的系统服务,比如上边提到到AMS(活动管理服务)、PMS(包管理服务)、WMS(窗口管理服务),而客户端指的就是Android系统上的各种APP,当某个APP要实现某个操作,需要告诉这些系统服务,例如如果想要打开一个App,最终是由AMS通知zygote进程来fork一个新进程,进而开启目标APP的。的进程,在Linux系统中,所有的的进程都是。是一个进程的名字,Android是基于。

芸兮的博客 1388

27-eMMC电路设计

eMMC硬件电路设计

weixin_66510961的博客 4008

Android四大组件

Android的一些基本所知(可做面试复习用)2019前言一、四大组件1.ActivityActivity的作用Activity的生命周期Activity的启动模式Activity可能会遇到的问题你后台的Activity被系统 回收怎么办:onSaveInstanceState2.ServiceService的作用Service的两种状态Service的两种状态ServiceIntentServi...

未来源起的博客 5735

本地化部署dify,使用Database插件实现dify直连数据库报错No module named ‘MySQLdb‘解决方案

网上查阅各种资料,有说修改/dify-main/docker/volumes/sandbox/dependencies目录下的python-requirements.txt文件,添加了如下两行,试验后无效。,看到有人是其他报错,但是URI配置如下(在mysql后面加了pymysql),尝试后果真成功了。按照系统提示设置完数据库URI后保存出现错误。在工具市场查询Database,点击后进行授权。最后在该插件的项目地址获得灵感。

qiaoxu1989的博客 4333

libnice和coturn这两个库有交叉实现的地方,具体有啥区别?

TurnAdmin:是一个TURN的管理工具,此工具能被用来管理用户账号的增删改查。 TurnServer:是TURN和STUN的服务器实现。 Turnutils_uclient: 模拟多个UDP、TCP、TLS或DTLS客户端 Turnutils_peer: 一个简单的无状态UDP-ECHO服务器,用作中继模式中的最终服务器 Turnutils_stunclient: 一个简单的STUN客户端例子 Turnutils_rfc5769check: 检查STUN/TURN协议实现的正确性。 我们..

Langeldep的专栏 1320

Android四大组件详解(大白话版)

 1. Activity:负责展示用户界面,就像App的一个个“页面”,用户通过它与应用交互。   2. Service:在后台默默干活的打工人,比如播放音乐或下载文件,没有界面但能长时间运行。   3. BroadcastReceiver:像“收音机”一样接收系统或应用发出的广播消息,比如电量低或网络变化,然后做出响应。   4. ContentProvider:是“数据管家”,管理应用的数据并提供统一接口,让其他应用也能访问这些数据。  

m0_73804764的博客 1万+

运维与软件实施课表

运维与软件实施课表 课程 章节编号 章节 课程地址 软件及操作系统基础 ch01 软件及操作系统基础01 实施、运维工程师基本技能:https://blog.youkuaiyun.com/qq_28189423/article/details/82700539 老毛桃制作winPE镜像:https://blog.youkuaiyun.com/qq_2818942...

Mr.O~的博客 1万+

【Android】基础回顾--四大组件

继承至BroadcastReceiver基类重写onReceiver()方法广播接收器收到相应广播后,会自动回调onReceiver()方法;一般情况下,onReceiver方法会涉及与其他组件之间的交互,如发送Notification、启动service等等;默认情况下,广播接收器运行在UI线程,因此onReceiver方法不能执行耗时操作,否则可能ANR。

2303_79296612的博客 3954

BIOS更新后PIN不可用怎么办?从原理到实操的完整修复指南

在计算机维护中,BIOS更新是常见的固件升级操作,但其引发的登录异常却常让用户措手不及。Windows Hello PIN并非传统密码,它通过TPM芯片与设备启动环境(PCR状态)强绑定,一旦主板固件或安全启动配置改变,TPM便会拒绝释放密钥,导致“由于此设备上的更改,你的PIN不再可用”。理解这一原理后,恢复路径清晰可控:优先尝试密码登录,或通过WinRE替换utilman.exe创建临时管理员,必要时还需处理BitLocker恢复密钥。本文面向系统维护与数据安全场景,系统梳理PIN失效的恢复流程与避坑方

weixin_31364787的博客 377

【Bug已解决】Codex capacity errors 自动重试与意图保留 解决方案

原始报错:Codex Desktop: capacity errors should preserve intent and auto-retry instead of handing model routing back to the user场景:向模型服务发请求时遇到容量错误(服务端繁忙 / 限流 / 容量不足),客户端不做任何重试,直接把"请求失败,请选择另一个模型或重试"的锅甩给用户,让用户手动去点。用户本来只是想完成一次任务,却被中途打断去当"调度员"。

博客 279

[Android]四大组件简介

在 Android 开发中,“四大组件”(Four Major Components)是指构成 Android 应用程序的四种核心组件,它们通过各自的方式与系统交互,实现应用的多样功能。这些组件是:Activity、Service、Broadcast Receiver 和 Content Provider。每个组件都扮演着不同的角色,并且通过各自的生命周期、方法和目的与 Android 操作系统交互。

Gamin 5927

【android bluetooth 案例分析 01】【HiCar 详解 3】【hicar时如何交换Wifi参数的】

如果直接使用 L2CAP(不经过 RFCOMM),会需要额外的协议来保证可靠性,而 RFCOMM 天然支持。BLE 广播的数据长度受限(31 字节 / 255 字节扩展),不适合传输复杂的 Wi-Fi 连接参数。使用 RFCOMM 传输参数,可以兼容不同厂商的车机和手机,而无需依赖特殊的蓝牙功能。手机解析这些参数,并使用 Wi-Fi Direct 连接到车机。,然后才能让 Wi-Fi Direct 进行真正的数据传输。,适合传输 Wi-Fi 连接参数等关键数据。,可以安全地交换 Wi-Fi 连接信息。

奔跑吧 android 的博客 1740

Android 四大组件 简介

1、 Activity Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些B

主人公的专栏 1577

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

安卓四大组件简介

安卓四大组件 Activity活动,Service服务,BroadcastRecevicer广播接受器,Content Provider内容提供者 Activity活动 所有程序的流程都运行在activity中 Service服务 只能后台运行,没有界面的长生命周期的代码 BroadcastRecevicer广播接受器 运用在程序之间传输信息的机制 Content Provider内容提供者 第三方应用数据的访问方案,一个应用的数据不允许其他应用直接访问 ...

qq_coding的博客 192

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

安卓学习二:安卓四大组件简介

1、均需要注册后才能使用,都需要在AndroidManifest文件中进行配置2、内容提供者仅仅在ContentResolver提出请求时被激活;广播接收器仅在相应广播信息的时候被激活;活动可以调用finish()方法来关闭;服务对于startService()方法启动的服务要调用Context.stopService()方法关闭服务,使用bindService()启动的服务要调用Context.unbindService()方法关闭服务。

qq_34689202的博客 185

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android四大组件之Service简介

Service 意为:服务,是一种运行时用户不可见的活动机制,是Android四大组件之一。本文介绍了service的基本概念,如何创建service,启动Service的两种方式。

fxjzzyo的博客 571

Android四大组件的简介

Android开发四大组件分别是: 一、活动(Activity): 用于表现功能。二、服务(Service): 后台运行服务,不提供界面呈现。 三、广播接收器(BroadcastReceiver):用于接收广播。四、内容提供者(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。 一、Android 中,Activity是所有程序的根本,也是Android 当...

weixin_30552635的博客 142

Android四大组件之Activity简介

本文对安卓四大组间之一的Activity进行简要的介绍和说明。

举世武双的博客 526

Android的四大组件 简介

Activity : activity是Android提供的界面,所有和用户交互的事情都发生在这个类。   Activity的生命周期: OnCreate() 创建的时候会调用这个方法 设置这个Activity设置布局控件,初始化数据等。 OnStart() 当控件被我们看到的时候,就调用OnStart()方法 在OnCreate()之后 或者OnStop()后调用。 OnResume

yuwenhao0518的专栏 1002

# 第二集 玩转Android-Studio之四大组件简介

Activity 之间通过 Intent 进行通信。Android 应用中每一个 Activity 都必须要在 AndroidManifest.xml 配置文件中声明,否则系统将不识别也不执行该Activity。在 android studio会自动生成,但 eclipse 需要自己手动添加(eclipse用的比较少了,目前主流都用android-studio)Activity 的中文意思是 活动,代表手机屏幕的一屏,或是平板电脑中的一个窗口,提供了和用户交互的可视化界面。

qq_31876537的博客 1483

Android基础知识(三):Android四大组件简介

Android基础知识(三):Android四大组件简介 一、Activity Activity是一种可以包含用户界面的组件,主要用于和用户进行交互。 关于Activity 一个Activity通常就是一个单独的屏幕(窗口),Activity之间通过Intent进行通信。Android应用中每个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执...

weixin_38196407的博客 670
上一篇: Android Studio 下载地址与简单配置
下一篇: PopupWindow中使用EditText软键盘的弹出和隐藏
彼天
博客等级 码龄11年 37粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值