安卓 Context 和 Application的关系

1. 我开始一直不理解显式Intent中传一个this(当前的activity)是为什么。因为Intent里面的构造方法对应的只有 Context, Class。后面查资料才发现

  

Intent i = new Intent(this, AnotherAty.class);  // 在activity里面调用。
public Intent(Context packageContext, Class<?> cls) {
        mComponent = new ComponentName(packageContext, cls);
    }

是因为 activity都继承了 android.content.Context。下面是官方的解释。

  关于应用程序环境的全局信息的接口。这是一个抽象类,它的实现是由安卓系统提供的。它允许访问应用程序特定的资源和类,以及应用级的操作,如启动活动,电话,广播和接收的意图,等等。

  其实说白了就是上下文,可以获取全局资源。(刚刚学到这里,其他的方法可以取查手册)

this.getResources().getString("app_name");  // activity调用可以获取到全局的 app_name 定义的值

2. android.app.Application 类

需要维护全局应用程序状态的基类。你可以通过在你的AndroidManifest.xml指定其名称提供自己的实现。XML <application>标签,这将导致这类被实例化时为您为您的应用程序/包创建过程。

例如你定义了一个全局类, App继承了Application , 那么你要到  XML <application>标签 中设置 android:name=".App"

 这样你的所有的activity都可以共享这个App类了。 其实每个activity也是继承了这个Application类。 同时Application类也继承了 Context类

App app = (App)this.getApplicationContext();  // 在activity中调用  里面肯定有 getResources()方法

ps: 刚刚学习,记录一点。 以后有更好的心得在更新

时间: 2024-10-12 18:08:12

安卓 Context 和 Application的关系的相关文章

安卓 Intent 与/intent-filter的关系详解。

Intent可以分为两种:显式Intent和隐式Intent;显式Intent:通过组件名字字段指定目标组件;因为开发者通常不知道其它应用程序的组件名字,所以,显式Intent通常用于应用程序内部消息传递;例如:一个Activity启动从属的服务或启动一个同级别的Activity;隐式Intent:不指定目标组件的名字(组件名字字段是空);隐式Intent经常用于激活其它应用程序中的组件;Android系统传递一个显式Intent消息对象到一个指定目标组件名字的实例,Intent消息对象中只用组

Android -- Context(Application的应用)

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-le

request,session,application三者关系&lt;转&gt;

几乎所有的Web开发语言都支持Session功能,Servlet也不例外. Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的. 对象作用域为:  page  在当前页面有效(仅用于JSP中)  request  在当前请求中有效  session  在当前会话中有效  application  在所有应用程序中有效 page因为仅用于JSP中,这里只讲述其他三种作用域.首先要声明的一点,所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内

request,session,application三者关系

几乎所有的Web开发语言都支持Session功能,Servlet也不例外. Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的.对象作用域为:  page  在当前页面有效(仅用于JSP中)  request  在当前请求中有效  session  在当前会话中有效  application  在所有应用程序中有效 page因为仅用于JSP中,这里只讲述其他三种作用域. 首先要声明的一点,所谓“作用域”就是“信息共享的范围”, 也就是说一个信息能够在多大的范围

Android开发之Android Context,上下文(Activity Context, Application Context)

转载:http://blog.csdn.net/lmj623565791/article/details/40481055 1.Context概念Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源.启动一个新的Activity.获取系统服务.获取内部文件(夹)路径.创建View操作时等都需要Context的参与,可见Context的常见性.大家可能会问到底什么是Context,Context字面意思上下文,或者

Context源码分析

Context是什么? Context的字面意思是"上下文",那么这个"上下文"到底指的是什么?"上"指的是什么?"下"指定的是什么?个人的理解,有助于自己的理解的方式,不一定对,如果有更好的看法可以一块交流学习.个人的理解,"上"指的是在APP启动的时候,就与Context有关了,这个时候还是系统启动阶段,就与Context发生了联系."下"指定的是在APP界面正常显示出来以后,正常与

【腾讯御安全】基于代理Application机制的Anddroid应用加壳方法

壳是指一个程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译的程序.它们一般都先于程序运行,拿到控制权,然后完成它们保护软件的任务.对于Android APP来说,所有的实现逻辑都集成于DEX文件中,DEX文件是一个APP的核心所在,因此保护DEX文件被逆向或者修改尤其重要.Android应用的DEX加壳过程如下: 尽管上述DEX加壳过程中,关于如何对DEX进行加密或者利用其它方法对其进行处理的方法有很多,但是通过自定义DexClassLoader替换原DexClassLoade

安卓第十六天笔记-音频与视频播放

安卓第十六天笔记-音频与视频播放 音频与视频播放 1.音频 播放应用资源中的音乐 应用中的音乐一般放在res/raw目录下 /** * 播放应用资源中的音乐 * * @param v */ public void player1(View v) { // 设置播放数据源 MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.gm); // 不需要准备,create,创建完成直接可以使用播放 mediaPlayer.start(); }

Android中的Context详解

前言:本文是我读<Android内核剖析>第7章 后形成的读书笔记 ,在此向欲了解Android框架的书籍推荐此书. 大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打交道,例如:Service.BroadcastReceiver.Activity等都会利用到Context的相关方法 : 说它陌生,完全是 因为我们真正的不懂Context的原理.类结构关系.一个简单的问题是,一个应用程序App中存在多少个Co