Application与Context的关系

在开发中Application类,几乎每个项目中都会使用到,它是优化于四大组件运行的,它是一个全局的盒子,可以这么理解,比如我们可以在application类中存放一些变量,在其他类中可以获取到,比如在A类中把变量存放在Appliaction类中,然后在B类中可以获取,但是在Application中存放静态的变量,容易被系统回收,今天讲的是Application与Context的关系

请看图:

从图可以看出Application是Context的子类,

从java继承的关系看,子类的功能一定要比父类的功能强大,我们在项目中很多地方都会用到Context这个对象,一种方法是通过方法传递,一种方法是通过控件的方法获取,在android中常用的布局对象也可以获取,比如:LinearLayout ,RelativeLayout FrameLayout,都提供了getContext()方法获取Context对象,还有还有一种就是直接在Application类中直接使用了,

public class BaseApplication extends Application {
	public static BaseApplication mInstance;
	@Override
	public void onCreate() {
		super.onCreate();
		mInstance = this;
	}

	public static BaseApplication getApplication(){
		return mInstance;
	}
}

因为Application是Context的子类,所以直接获取到Application就可以



时间: 2024-08-10 02:09:51

Application与Context的关系的相关文章

Application与Context关联

在发展中Application分类,几乎每个项目将用于,它的四个组成部分的实施优化,它是一个全球性的框,这可能是这么理解,例如,我们可以application类存储一些变量,在其他类访问,例如,在A类被存储在可变Appliaction类中,然后在B类中能够获取,可是在Application中存放静态的变量,easy被系统回收,今天讲的是Application与Context的关系 请看图: 从图能够看出Application是Context的子类, 从java继承的关系看,子类的功能一定要比父类

什么时候用Application的Context,什么时候用Activity的Context

单例模式用application的context 如果我们在Activity A中或者其他地方使用Foo.getInstance()时,我们总是会顺手写一个『this』或者『mContext』(这个变量也是指向this).试想一下,当前我们所用的Foo是单例,意味着被初始化后会一直存在与内存中,以方便我们以后调用的时候不会在此次创建Foo对象.但Foo中的『mContext』变量一直都会持有Activity A中的『Context』,导致Activity A即使执行了onDestroy方法,也不

egg 官方文档之:框架扩展(Application、Context、Request、Response、Helper的访问方式及扩展)

地址:https://eggjs.org/zh-cn/basics/extend.html Application app 对象指的是 Koa 的全局应用对象,全局只有一个,在应用启动时被创建. 访问方式: ctx.app Controller,Middleware,Helper,Service 中都可以通过 this.app 访问到 Application 对象,例如 this.app.config 访问配置对象. 在 app.js 中 app 对象会作为第一个参数注入到入口函数中 // ap

AlertDialog 的context 不能是application的context

昨天做了一个demo,静态注册的BroadcastrReceiver在onReceive方法里实现 alertdialog. 但是,健哥说我的这个会报错,但是为什么没报错很奇怪,我也很奇怪,今早一来我就研究了一下alertdialog的坑. dialog 是类型同activity的应用窗口,都可以创建phonewindow实例. 看看dialog的构造函数: Dialog(@NonNull Context context, @StyleRes int themeResId, boolean cr

Activity、Task、Application关系+Intent启动Flag

什么是Android  Application? 简单来说,一个apk文件就是一个Application. 任何一个AndroidApplication基本上是由一些Activities组成,当用户与应用程序交互时其所包含的部分Activities具有紧密的逻辑关系,或者各自独立处理不同的响应. 这些Activities捆绑在一起成为了一个处理特定需求的Application,并且以".apk"作为后缀名存在于文件系统中. Android平台默认下的应用程序 例如:Email.Cale

vs 编译错误 The name 'InitializeComponent' does not exist in the current context in WPF application

1:文件命名空间的问题 xaml文件和model.cs文件的命名空间 2:csproj 那么它究竟是给谁用的呢?那是给开发工具用的,例如我们在熟悉不过的Visual Studio,以及大家可以没有接触过,但是应该都听说过的MSBuild.exe.Visual Studio会根据csproj里的XML定义来管理项目文件以及相关其他一些种类非常丰富的数据及操作,MSBuild也会根据csproj文件来得知编译这个项目需要有哪些依赖,默认输出路径,Pre-Build和Post-Build需要哪些操作等

Android应用Context详解及源码解析

[工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果] 1 背景 今天突然想起之前在上家公司(做TV与BOX盒子)时有好几个人问过我关于Android的Context到底是啥的问题,所以就马上要诞生这篇文章.我们平时在开发App应用程序时一直都在使用Context(别说你没用过,访问当前应用的资源.启动一个activity等都用到了Context),但是很少有人关注过这玩意到底是啥,也很少有人知道getApplication与getApplica

Context都没弄明白,还怎么做Android开发?

Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?估计很多人说不清道不明.Android程序不像Java程序一样,随便创建一个类,写个main()方法就能运行,Android应用模型是基于组件的应用设计模式,组件的运行要有一个完整的Android工程环境,在这个环境下,Activity

Android Context 是什么?

andorid 开发(42)  版权声明:本文为博主原创文章,未经博主允许不得转载. [转载请注明出处:http://blog.csdn.net/feiduclear_up CSDN 废墟的树] PS:修该了一些有误区的地方. 引言 Context对于Android开发人员来说并不陌生,项目中我们会经常使用Context来获取APP资源,创建UI,获取系统Service服务,启动Activity,绑定Service,发送广播,获取APP信息等等.那么Context到底是什么?Context又是怎