IT辅导娱乐网| 蜘蛛地图| 所有文章|
Android四大核心组件简介 - IT辅导
  • 首页
  • IT技术 IT辅导资源网设计图
    • DVWA靶场
    • sqli-lab靶场
  • 源码基地
  • 软件分享 IT辅导资源网设计图
    • 辅助软件
  • emlog教程
  • 白嫖活动
  • 网络技巧 IT辅导资源网设计图
    • seo教程
  • 编程教程
  • 值得看一看 IT辅导资源网设计图
    • 值得听一听
    • 读懂世界
    • 活动线报
  • 更多功能 IT辅导资源网设计图
    • 在线投稿
    • 公告动态
    • 广告合作
    • 匿名投稿


登录后,享受更多优质服务哦
IT辅导资源网站长qq头像
欢迎回来,可爱的会员!个人中心退出登录
导航菜单
  • 首页
  • IT技术
    • DVWA靶场
    • sqli-lab靶场
  • 源码基地
  • 软件分享
    • 辅助软件
  • emlog教程
  • 白嫖活动
  • 网络技巧
    • seo教程
  • 编程教程
  • 值得看一看
    • 值得听一听
    • 读懂世界
    • 活动线报
  • 更多功能
    • 在线投稿
    • 公告动态
    • 广告合作
    • 匿名投稿

Android四大核心组件简介

2020/9/1 五年级扛把子 

前言

Android是一个移动设备的开发平台,其软件层次结构包含有操作系统 (OS)、中间件 (MiddleWare) 和应用程序 (Application)。根据完成的功能不同,Android 划分了 4 类核心组件,即 Activity、Service、BroadcastReceiver 和 ContentProvider,各组件之间通过 Intent 来传递消息。  

Activity  

Activity 是 Android 应用程序核心组件中最基本的一种,Activity是用于处理UI相关业务的,比如加载界面、监听用户操作事件。是用户和应用程序交互的窗口。 

在 Android 应用程序中,一个 Activity 通常对应一个单独的视图。一个 Android 应用程序是由一个或多个 Activity 组成的,这些 Activity 相当于 Web 应用程序中的网页,用于显示信息,并且相互之间可以进行跳转。和网页跳转不同的是,Activity 之间的跳转可以有返回值。 

Activity 是由 Android 系统进行维护的,它有自己的生命周期,即“产生、运行、销毁”,但是在这个过程中会调用许多方法,主要包括7个生命周期方法,创建 onCreate()、激活 onStart()、恢复 onResume()、暂停 onPause()、停止 onStop()、销毁 onDestroy()和重启 onRestart() 等。详细流程如下图:

 这里写图片描述

创建一个Activity需继承自android.app.Activity这个类,重写onCreate(),在onCreate()里面调用setContentView(参数)来加载布局,参数就是布局文件。配置则需要在清单文件的Application节点下面注册Actvitiy,如果要首先启动该Activity则添加带有category节点且值为LAUNCHER的intent-filter节点,清单文件的配置如下。

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

Service

Service 是一种类似于 Activity 但是没有视图的程序,它没有用户界面,可以在后台运行很长时间,相当于操作系统中的一个服务,简单个人理解为他保持程序在后台运行。

Service还有一个作用就是提升进程(每一个应用就是一个进程)的优先级,进程的优先级指的是在Android系统中,会把正在运行的应用确定一个优先级,当内存空间不足时,系统会根据进程的优先级清理掉一部分进程占用的内存空间,以获得足够的内存空间以供新启用的应用运行。

Android 中 Service有两种定义,即本地 Service 和远程 Service。本地 Service 是只能由承载该 Service 的应用程序访问的组件,而远程 Service 是供在设备上运行的其他应用程序远程访问的 Service。  

通过 Context.startService(Intent service) 可以启动一个 Service,其中intent定义方法与跳转Activity类似,只需把Actvity类换成Service类即可。其生命周期为启动时onCreate()–>onStartCommand()–>销毁时onDestroy(), 反复调用startService()只会导致Service反复执行onStartCommand()。

通过 Context. bindService() 可以绑定一个 Service。调用bindService()方法可以实现Activity与Service的绑定,调用unbindService()可以解除绑定。在Activity被销毁之前,必须解除与Service的绑定。生命周期为onCreate() -> 当第1次绑定时执行– onBind() -> 当第1次绑定时执行– onDestroy() -> 当解除绑定时执行。

下图为两种状态的Service生命周期说明:

 两种状态区别

BroadcastReceiver

BroadcastReceiver 的意思是“广播接收者”,顾名思义,它用来接收来自系统和其他应用程序的广播,并做出回应。所以ContentProvider可以将应用程序自身的数据对外(对其它应用程序)共享,使得其它应用可以对自身的数据进行增、删、改、查操作。

在 Android 系统中,当有特定事件发生时就会产生相应的广播。广播体现在方方面面。举例说,当开机过程完成后,系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时,系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度等。  

BroadcastReceiver 的 2 种注册方式:

  • 在 AndroidManifest. xml 中进行静态注册;
  • 在运行时的代码中使用 Context.registerReceiver() 进行动态注册。

只要注册了 BroadcastReceiver,即使对应的事件广播来临时应用程序并未启动,系统也会自动启动该应用程序对事件进行处理。另外,用户还可以通过 Context.sendBroadcast() 将自己的 Intent 对象广播给其他的应用程序。  

ContentProvider

广播接收器,顾名思义这是用于接收应用发送的广播的系统组件。文件、数据库等数据在 Android 系统内是私有的,仅允许被特定应用程序直接使用。在两个程序之间,数据的交换或共享由 ContentProvider 实现。广播是一种1对多的通信方式,即存在1个发送方,若干个接收方。  

ContentProvider 类实现了一组标准方法的接口,从而能够让其他的应用保存或读取 ContentProvider 提供的各种数据类型。  

Intent

Intent 并不是 Android 应用程序四大核心组件之一,但是其重要性无可替代。Android 应用程序核心组件中的三大核心组件 —— Activity、Service、BroadcastReceiver。通过消息机制被启动激活,而所使用的消息就是 Intent。Intent 是对即将要进行的操作的抽象描述,承担了 Android 应用程序三大核心组件相互之间的通信功能,所以是十分重要的。  


 点赞:0  打赏  分享  海报

  • 打赏支付宝扫一扫
  • 打赏微信扫一扫
  • 打赏企鹅扫一扫
结束语
温馨提醒:如有技术问题以及资源失效请联系站长 QQ89549822 进行反馈!!!
 您阅读本文耗时: 0小时02分35秒
热度:339° 发布时间:2020年9月1日

推荐:

标题:Android四大核心组件简介

链接: https://www.itfd.cn/post-1189.html

版权:转载请注明来源于【IT辅导娱乐网】为原创

上一篇: 常用数据库介绍

下一篇: Vim简介及安装使用

作者头像 作者名称 作者性别
五年级扛把子
联系作者 作者主页

热门推荐

1 MySql安装
2 电脑如何远程连接windos服务器?
3 微信视频号开放内测资格申请
4 JS正则表达式(常用正则校验)
5 java 安装(windos)
6 mpvue开发微信小程序(环境搭建)

评论列表

取消回复

  • 存档

    • 2020年9月(191)
    • 2020年8月(92)
    • 2020年7月(5)
    • 2020年6月(224)
    • 2020年5月(392)
    • 2020年4月(267)
    • 2020年3月(76)
    • 2019年3月(1)
    • 1970年1月(29)
  • 搜索

  • 热门文章

    • 神佑之路手游源码-附视频教程
    • 最新可用老王VPN2.22.15谷歌市场版,免费使用
    • 私藏的十个网站,不看后悔系列
    • 虚拟商品自动发货商城源码
    • 不吃苦、不奋斗,你要青春做什么?
  • 随机文章

      • Java面向对象的概念以及面向对象的特征
        • Linux安装MySQL及配置详细说明
          • MySQL数据类型介绍
            • windos nodejs安装及npm和cnpm的安装
              • Java字符串拼接
    提示信息

    SQL语句执行错误: SELECT COUNT(*) AS total FROM emlog_twitter
    Table 'itfd.emlog_twitter' doesn't exist

    «点击返回