Android中Activity.this,getApplicationContext(),getBaseContext()和this详解

转自:http://android.tgbus.com/Android/tutorial/201103/346236.shtml

 

在使用Android上下文参数的时候经常分不清Activity.this(这里的Activity代指Activity类,也就是你需要使用context参数的那个Activity,例如:MainActivity),getApplicationContext()和getBaseContext(),经过谷歌查询,终于算是有些明白了,这里记下来,备忘,也希望能帮助更多的人。

    首先说一下生命周期上的区别。

 

  1. getApplicationContext()返回的是你的整个Application的context,生命周期是整个Application,Application销毁后,它才销毁。
  2. Activity.this的context属于Activity,生命周期与Activity相同,随着当前的Activity.this消亡而消亡。
  3. getBaseContext()返回由构造函数指定或者setBaseContext()设置的上下文(谷歌工程师不建议使用)。
  4. this放在哪里边就是谁的指针,如果在Activity中就是Activity,这时等同于Activity.this;如果放在OnCliclListener()中就是OnClickListener()。

 

    接下来说说怎么使用getApplicationContext()和Activity.this。

    根据你的控件的生命周期决定传Activity.this还是getApplicationContext(),如果你的控件的生命周期是整个应用,就传送getApplicationContext(),如果是当前的Activity,就传送Activity.this。

    以AlertDialog为例,AlertDialog的对象是依赖于View的,View是和具体的Activity相关的,如果Activity消亡了,则View也不存在,所以需要传入Activity.this而不是getApplicationContext()。

    综上所述:最简单的方法是根据控件的生命周期决定传什么参数。

转载于:https://www.cnblogs.com/xym4869/p/8477643.html

VTK vtkLookupTable vtkScalarBarActor 颜色条 有时需要给数据做一个 vtkScalarBarActor, 我们把显示的数据的一个 坐标系 来显示 颜色条1.以 Z 显示颜色 效果如下。 阅读详情

相关推荐

【UV打印机】RYPC打印软件教程(二)-软件界面概述

下图是控制软件的主操作界面.将喷绘机的操作规纳为四块,分别为参数设置,任务选择,打印控制,系统维护,对于日常打印而言,只需操作任务选择,打印控制。从而使汲及的操作相对较少,使得系统对普通用户而言简单易用.

Print World的专栏 3600

getApplicationContext()和Activity.this

在Android应用开发中,最常用的组件大概非Activity莫属了,Activity究竟是什么,可能有各种各样的解释,但从安卓源码看来,Activity是一个Context对象,中文解释就是一个上下文对象,所谓上下文就是具有很强资源访问能力的一个对象,上下文对象不仅于Activity,包括Service和Application都是Context对象,我们需要Context对象也一般是进行资源访问

yuqiaoo的博客 1015

改善电流不匹配的级联电流镜布局设计 2002

模拟金属氧化物半导体 (MOS) 集成电路的性能在很大程度上取决于匹配精度的因素。 电流镜的匹配精度在模拟 IC 性能中尤为重要。 布局技术和器件尺寸被认为是可以在很大程度上改善匹配行为的主要因素。 尽管这些信息很重要,但对这两个因素的研究或研究有限。 在本文中,我们基于 Lan 等人 [1999] 提出的简单电流镜提出了一种新的级联电流镜布局技术。 Cascode电流镜的新布局在参数梯度存在的情况下改善了匹配特性。 讨论了跨晶体管有源区域的阈值梯度对电流镜匹配特性的影响。 使用 SPICE 仿真比较了新

Srfun的博客 4228

Android 11----View.onConfigurationChanged详解

这里写自定义目录标题目录新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 目录 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下M

肥鸟21号的博客 7762

特斯拉 Model 3解析(八)全面拆解特斯拉自动驾驶大脑:AP控制器硬核技术解析

算力极限:双FSD = 144 TOPS,专为AI推理优化。存储架构:LPDDR4 + NAND + NOR,保证高速/可靠启动。通信架构:以太网传视频,CAN传控制,TSN保障实时性。感知输入:多路摄像头 + 高速SerDes,满足全景感知。电源设计:功率模块+被动元件海洋,稳定性优先。功能安全:双芯片冗余 + GPS + 紧急呼叫,容错率极高。🎯 在我看来,特斯拉AP控制器就是一台“车载超算”,它在电源设计、存储架构和功能安全上远超一般新势力方案。

weixin_43199439的博客 1441

波束管理 Beam Management

Beam Management in 5G NR   波束管理,是5G NR中基于信道质量来动态选择每个UE和gNB之间以什么方向和频率的波束beam来进行通信。   背景   5G NR(New Radio)支持非常高的数据速率和更低的延迟。5G NR支持FR1和FR2频段,FR1为亚6 GHz(450至6000 MHz);FR2为毫米波段(24.25 GHz至52.6 GHz)。   由于毫米波频带使用非常高的频率,因此会导致传播损耗和其他损耗。为了补偿损失,在这种频率下定向通信是必不可少的。

最忆是江南的博客 5826

关于this、getContext()、getActivity()、getApplication()、getApplicationContext()的区别

1.MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身。因为MainActivity继承Activity,而Activity继承Context,所以它也可以用来提供Activity Contex; 2.this:表示当前对象;一般而言,在哪个类中调用,就是指向该对象。 3.getContext

Mr_Leixiansheng的博客 8304

Informer复现 -- 完整模型

有了数据和核心的ProbAttention,接下来就可以复现完整的Informer(图1)了。图1:Informer模型结构[1]如果对图1还不太熟悉的同学,可以参考图2。由图2可知,informer与Transformer之间的差异并不大。主要区别是ProbAttention和可能的encoder最后一层的conv(源代码中用来distil)。图2:参考Transformer画的Informer模型结构。

AI_daily的博客 3491

安卓开发中this的使用

换行 如何快速转载优快云中的博客_bolu的专栏-优快云博客 博客优快云 12-27 博客优快云 插入表情 添加代码片 HTML/XML objective-c Ruby PHP C C++ JavaScript Python Java CS

qq_41981665的博客 981

YOLO26改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型

本文记录的是基于MobileNet V4的YOLO26目标检测轻量化改进方法研究。主要用于轻量化应用部署,相关轻量化改进与其整体架构非常适配。通过整合、以及优化的,能够在在不降低性能指标的前提下,降低计算成本。本文配置了原论文中、、、和五种模型,以满足不同的需求。MobileNetV4: Universal Models for the Mobile Ecosystem是一系列适用于移动生态系统的通用高效模型。以下将详细介绍其轻量化设计的出发点、原理、结构和优势:的实现代码如下: 四、修改步骤 4.1 修

Limiiiing的博客 827

前端使用二开Thingsboard一、二、三事(三)-规则链

以项目实战为基础,逐步介绍前端在thingsboard系统二次开发中的一些注意事项以及一些thingsboard一些页面功能讲解,为前端人员开发使用thingsboard提供一种可靠思路,打造一个完美的物联网系统。

weixin_43163457的博客 863

Android开发中Context全解析:从this到getApplicationContext的正确使用场景

本文深入解析Android开发中Context的核心概念与正确使用场景,涵盖this、getApplicationContext()等关键方法的区别。通过实际代码示例,详细讲解如何避免内存泄漏和选择合适Context,帮助开发者提升应用性能和稳定性。

ol789012345的博客 626

uniapp - 超详细的 H5 公众号网页微信登录示例代码,提供从 0-1 公众号配置及详细注释代码(站在新手小白的角度)第三方微信授权登录的实现!!

uniapp微信浏览器H5授权微信登录,UniApp开发H5接入微信登录的全过程,uniapp的H5页面使用微信登录,uniapp H5微信授权登录,H5之微信授权登陆 (uniapp网页版微信授权登录),uni-app开发H5第三方微信授权登录的实现,uniapp如何实现微信授权登录,公众号H5页面接入微信登录流程,uni-app - 最详细 H5 网页接入微信登录功能,提供公众号配置与详细注释示例代码(移动端网页实现点击登录按钮后 调用微信公众号授权登录功能 详细讲解接入流程与详细示例代码)官方最新超级

✅ 精选推荐文章 1万+

Android Context解析以及getContext()、getApplication()、getApplicationContext()和getBaseContext()区别

Android程序不像Java程序一样,随便创建一个类,写个main()方法就能跑了,而是要有一个完整的Android工程环境,在这个环境下,我们有像Activity、Service、BroadcastReceiver等系统组件,而这些组件并不是像一个普通的Java对象new一下就能创建实例的了,而是要有它们各自的上下文环境,也就是我们这里讨论的Context。可以这样讲,Context是维持Android程序中各组件能够正常工作的一个核心功能类。

qq_38056514的博客 6131

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

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext()详解

类型 意义 备注 this 当前类是context的子类,一般是activity application等 1、 this:代表当前,在Activity当中就是代表当前的Activity,换句话说就是Activity.this在Activity当中可以缩写为this。2、 Activity.this的context 返回当前activity的上下文,属于activity ,acti...

高效码农 7132

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext的理解和使用

依赖的activity对象。但是不推荐使用,getActivity()将返回当前Fragment的activity,当Fragment销毁时,this.getActivity()将出现空指针异常,this为null。返回应用的上下文,也就是把Application作为context。返回的是父类的context,使用getApplicationContext()都可以使用this代替。,activity继承context,所以可以使用context或activity的地方一定可以使用this。

qq_46687516的博客 2122

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

getBaseContext()、getApplication()、getApplicationContext()的区别

好久没面试了,整理面试题时,发现Android面试经常会被问到getBaseContext()、getApplication()、getApplicationContext()的区别。这篇文章自己动手写代码测试一下,并且简单记录一下吧。

zhaojun的博客 2万+

getContext(),getApplicationContext(),getBaseContext()和“ this”之间的区别

What is the difference between getContext() , getApplicationContext() , getBaseContext() , and " th

asdfgh0077的博客 666

getApplicationContext()、getBaseContext()和Activity.this区别

普通的Android应用程序中,通常有两种Context,Application和Activity,也即getApplicationContext()和Activity的this。 getApplicationContext() 返回应用的上下文,生命周期对应整个应用。若应用销毁,context销毁。 Activity.this的context 返回当前activity的上下文,生命周期对应A

liumei90 6414

getApplicationContext(), getBaseContext(), getApplication(), getParent()区别以及context的最终解析

这四个函数的区别 原文链接http://stackoverflow.com/questions/6854265/getapplicationcontext-getbasecontext-getapplication-getparent 翻译+我的总结如下 1. getApplicationContext() : 这个函数返回的这个Application的上下文,所以是与app挂钩的,所

Shawn_Dut的专栏 1万+

Context——getApplicationContext(), getBaseContext(), getApplication(), getParent()的区别

1. getApplicationContext() : 这个函数返回的这个Application的上下文,所以是与app挂钩的,所以在整个生命周期里面都是不变的。 2. getBasecontext(): stackoverflow上面写的是,这个函数不应该被使用,用Constxt代替,而Context是与activity相关连,所以当activity死亡后可能会被destroye

chuntiandejiaobu10的专栏 2450

Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别...

Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别 : 知之为知之,不知为不知是知也! 使用this, 说...

chiyanliao0442的博客 185

Android中this,getActivity,getContext,getApplicationContext,getApplication,getBaseContext的区别

1.this MainActivity.this,一般是内部类指示外部的activity this:指当前类对象 this继承activity,activity继承context,所以可以使用context或activity的地方一定可以使用this。 2.getActivity 获取fragment依赖的activity对象。但是不推荐使用,getActivity()将返回当前Fragm...

weixin_38178449的博客 3204
上一篇: Android特效 五种Toast详解
下一篇: android使用JSON数据和服务器进行交互
aabb7654321
博客等级 码龄12年 10粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值