Android -- 每日一问:如何理解 Android 中的 Context,它有什么用?

news2024/11/25 20:53:40

在这里插入图片描述

经典回答

官方文档对于 Context 的解释:

Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.

中文翻译“Context”为“上下文,背景,环境,语境”,有点抽象。对照上面的英文,也很容易理解它的意思:Context提供了一个应用的运行环境,通过这个上下文应用才可以访问资源,才能完成和其他组件、服务的交互。它就是一个调用者和具体实现的桥接。

再看看这个图,可以直观的了解 Context 相关类的继承关系:
image.png

具体的实现,大家可以看一看 ContextImpl 这个类的源码,理一下它和 LoadApk 的关系,大家就会很容易明白 Context 是如何处理资源的。

注意:上图中的mPackageInfo是一个LoadApk对像,这个LoadApk是一个hide类型的类,所以你在SDK中是找不到它的。

Application(或者Service)和Activity都可以调用Context的startActivity方法,那么在这两个地方调用startActivity有区别吗?

如果你曾经遇到过,就会知道在Application(或者Service)需要给Intent设置Intent.FLAG_ACTIVITY_NEW_TASK才能正常启动Activity,这就会引出Activity的Task栈问题,以后再做分析。

Context的实例是什么时候创建的?一个应用里面会有几个Context的实例?

对于一般的应用来说,你会觉得这两个问题很无聊。但如果你需要做插件开发,上面的问题就变成是很关键的问题了。你的插件框架会是一个小型的Android Framework层,你当然得自己处理插件的Application和Activity创建,那么你肯定要解决好这两个问题。详情可以查看ActivityThread这个类的源码。

你的朋友是不是也在准备面试呢?你可以“请朋友读”,把今天的题目分享给好友,或许你能帮到他。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/48472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]SSM计算机毕业设计学生宿舍设备报修JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

光格科技将于12月6日上会:拟募资6亿元,姜明武为实控人

近日,苏州光格科技股份有限公司(下称“光格科技”)在上海证券交易所科创板递交招股书(上会稿)。据贝多财经了解,光格科技将于2022年12月6日接受科创板上市委的现场审议。 公开信息显示,光格科技…

微信小程序开发笔记

微信小程序开发笔记html条件渲染列表渲染按钮组件 buttoncss单位 rpx、px、vw、vh、rem定位方法设置图片为页面的背景自定义按钮的图标js全局变量底部导航栏 tabBar其他配置config.js带参数跳转页面云数据库的使用初始化查找地图组件 map从云数据库中调用经纬度,并且…

【附源码】计算机毕业设计JAVA资源循环利用

【附源码】计算机毕业设计JAVA资源循环利用 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

数字化门店| 美业/医美门店管理系统 | 医美小程序

近些年来,随着人们消费升级和颜值经济的不断驱动,美业发展非常迅速,而医美行业也顺势规模增长。 当今互联网时代,各行业都在开展门店数字化转型,而这也让不少医美医院愿意构建基于门店会员管理的O2O闭环,并…

Vscode同时开发前后端

VSCode统一前后端文档 一、软件下载 软件地址下载 Documentation for Visual Studio Code 二、软件汉化 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B0uCKmDL-1669770108463)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALA…

React+Electron快速创建并打包成桌面应用

一、创建react项目 首先使用creat-react-app脚手架来创建一个react项目 # 安装 create-react-app 命令,如果已将安装请忽略 npm install -g create-react-app # 创建 react项目 create-react-app react-electron # 启动项目( create-react-app 真的超级方便啊) cd react-elec…

数仓之hive自定义UDTF函数详解

学习目录一、自定义UDTF函数一、自定义UDTF函数 1.说明文档 A custom UDTF can be created by extending the GenericUDTF abstract class and then implementing the initialize, process, and possibly close methods. The initialize method is called by Hive to notify t…

全局JSON序列化导致prometheus数据格式错乱

现象 现场配置完prometheus端点后,返回数据格式乱了,如下图所示 正常结果数据如下图所示 分析 在单个微服务上访问prometheus端点数据返回格式正常。在小型化化格式返回就错乱了。数据返回格式是由消息转化统一处理的。在小型化工程中,…

有限责任公司股东出资的方式有哪几种

一、有限责任公司股东出资的方式有哪几种 有限责任公司股东出资的方式有以下两种: 1.货币出资方式。股东以货币出资的,应当将货币出资足额存入公司在银行开设的账户; 2.非货币财产作价出资方式。以非货币财产出资的,应当依法办…

Web3中文|连年亏损下,web3能拯救B站吗?

作者 | XiaoZiNFTnews.com 11月15日,百度旗下DuDu Lab发行的DuDu Bear NFT已完成铸造,NFT搭建于以太坊上,铸造价格为0.02ETH,发售价格为0.05ETH,共发行1万个,总价值约为455万人民币,目前已售罄…

【JavaScript对象】

JavaScript对象1 本节目标2 对象2.1 什么是对象2.2 为什么需要对象3 创建对象的三种方式3.1 利用字面量创建对象3.2 利用new Object创建对象3.3 利用构造函数创建对象3.4 变量、属性、函数、方法总结3.5 构造函数和对象4 new关键字5 遍历对象属性1 本节目标 说出为什么需要对象…

[附源码]计算机毕业设计JAVA小区物业管理系统论文

[附源码]计算机毕业设计JAVA小区物业管理系统论文 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

Qt编写视频监控系统67-录像计划(支持64通道7*24录像设置)

一、前言 录像计划这个功能一直挂了很久,之前做的也都有保存视频文件功能,其中还分了三大种,第一种是手动开启和停止录像;第二种是按照指定时长比如10s保存文件;第三种是定时30分钟一个文件一直保存。这三种功能直接写…

转铁蛋白修饰的去氢骆驼蓬碱磁纳米脂质体TF-HM-MPS

转铁蛋白又名运铁蛋白(Transferrin,TRF、Tf),负责运载由消化管吸收的铁和由红细胞降解释放的铁。以三价铁复合物(Tf-Fe3)的形式进入骨髓中,供成熟红细胞的生成。转铁蛋白主要存在于血浆中&#…

Kafka牛逼在哪里?

一、Kafka存在哪些方面的优势 1. 多生产者 可以无缝地支持多个生产者,不管客户端在使用单个主题还是多个主题。 2. 多消费者 支持多个消费者从一个单独的消息流上读取数据,而且消费者之间互不影响。 3. 基于磁盘的数据存储 支持消费者非实时地读取…

易基因|DNA甲基化揭示应激反应影响婴儿免疫相关基因的表观遗传调控机制 | 表观发育

易基因|DNA甲基化揭示应激反应影响婴儿免疫相关基因的表观遗传调控机制 | 表观发育 大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2021年,《Brain, Behavior, and Immunity》杂志发表题为“Biobehavioral org…

3-FreeRTOS任务和协程

概述 “任务”的特征 简单来说,FreeRTOS实时系统能够创建多个独立的任务,任务之间互不干扰。任务创建之后并不是一起运行的,而是通过优先级顺序进行任务的调用,和调度也没有依赖关系。所以不管什么时候程序只能执行一个任务&…

MBA管理类联考英语二题型答题时间及次序问题

还有不到一个月时间,2023年MBA联考也进入到最后的收官阶段,这个阶段对于多数已经系统复习过的考生,一般需要进行通盘梳理备考,而不是专注于单个模块的复习。在做试卷或真题的过程中,如何才能更有利于分数这个问题需要大…

[附源码]Python计算机毕业设计Django电影院网上售票系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…