用了这么久的Context,对于Context究竟是个什么玩意一直不是很明白。看了网上十几篇文章的介绍 加上自己的理解总结一下。(自己想法,不对勿喷,不想照搬网上一些文字说法来糊弄自己,自己理解的就这么多,有谁好的补充记得提一下 我好加进去,谢谢了啊)

1,我们需要明白的是Context是Activity Application Service 的抽象基类,官方翻译其实Activity里面有一个引用context,Application里面有一个引用context。两个不同的引用的context的生命周期是不一样的。为什么要封装这么一个东西 其实我不是很明白,忘哪位大神给个例子说明一下。

2,不是很牛逼的大神当然只要知道怎么用就好了啊,

(1)最常用的就是就是startActivity。一般来说传的是这个Activity的context引用。用getApplication的引用好像也是可以的。但是有人说需要创建一个新的task。一般情况不推荐。我在android6.0的小米机器上使用是直接可以的。 反正跳转Activity一般使用 activity的引用。

(2)一般我们会对已有的API进行封装。一般会使用静态的方法并且使用单例。很多时候需要传Context,一般这个时候当static是一个强引用,使用Activity的时候当Activity销毁的时候,context的引用无法被回收 导致类存泄露。(内存检测工具 LeakCanary 非常的方便 可以非常清楚的定位那个地方内存泄露),这个时候我们应该用全局的Application的引用context

(3)创建activity或者图片或者组件的创建,应该使用Activity的context,不然因为Application是全局的导致这些资源无法及时得到释放,导致内存泄露。

COPY 别人的话:

1,凡是跟UI相关的,都应该使用Activity做为Context来处理其他的一些操作,Service,Activity,Application等实例都可以

2,(官方翻译)提供应用环境全局信息的接口,并且这个接口是由抽象类实现的,它的执行被android系统所提供,允许我们获取以应用为特征的资源和类型,同时启动应用级的操作,如启动Activity,broadcasting和接收intent

3,添加一个很有用的图

android Activity Application Context 的区别的更多相关文章

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

    转载:http://blog.csdn.net/lmj623565791/article/details/40481055 1.Context概念Context,相信不管是第一天开发Android,还 ...

  2. android开发中的 Activity 与 Context 区别与联系

    Context 是 Application /Activity /Service的基类 Intent(Context , Class); Activity中的上下文Context是随着活动的产生而产生 ...

  3. android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别

    android Activity类中的finish().onDestory()和System.exit(0) 三者的区别 Activity.finish() Call this when your a ...

  4. 【翻译】Android避免内存泄露(Activity的context 与Context.getApplicationContext)

    原谅地址:http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html ,英文原文在翻译之后 Android 应用 ...

  5. Android深入理解Context(一)Context关联类和Application Context创建过程

    前言 Context也就是上下文对象,是Android较为常用的类,但是对于Context,很多人都停留在会用的阶段,这个系列会带大家从源码角度来分析Context,从而更加深入的理解它. 1.Con ...

  6. Android activity之间数据传递和共享的方式之Application

    1.基于消息的通信机制  Intent ---bundle ,extra 数据类型有限,比如遇到不可序列化的数据Bitmap,InputStream,或者LinkedList链表等等数据类型就不太好用 ...

  7. Android深入理解Context(二)Activity和Service的Context创建过程

    前言 上一篇文章我们学习了Context关联类和Application Context的创建过程,这一篇我们接着来学习Activity和Service的Context创建过程.需要注意的是,本篇的知识 ...

  8. Android中的this、Activity、Context等

    Android中的this.Activity.Context.Application等虽然有相似之处,但是不能乱用,每一个都有自己的特点.用的时候不能太随意了. 避免context相关的内存泄露,注意 ...

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

    单例模式用application的context 如果我们在Activity A中或者其他地方使用Foo.getInstance()时,我们总是会顺手写一个『this』或者『mContext』(这个变 ...

随机推荐

  1. 如何选择适合自己的CMS建站系统

             在互联网发展突飞猛进的今天,可谓”得市场者得天下”,而电商已成为占据市场速度最快.范围最广的手段,进而网站建设也逐渐引起商家重视,并深入到了企业和个体的发展战略之中. 如今企业建站已 ...

  2. Android 开源优秀的项目

    webrtc square/picasso  Android 的一个强大的图像下载和缓存库 A powerful image downloading and caching library for A ...

  3. Notepad++ 7.3.2 Download 64-bit x64 / 32-bit x86

    Notepad++ 7.3.2 Download 32-bit x86 Notepad++ Installer 32-bit x86: Take this one if you have no ide ...

  4. 使用纯CSS方案,解决垂直居中

    CSS是HTML元素的剪刀手,它极度的丰富了web页面的修饰.在众多CSS常见的样式需求中,有一奇葩式的存在[垂直居中],因为不管是从逻辑实现方面还是从正常需求量来讲,这都没理由让这个需求在实践过程中 ...

  5. 自动获取代理IP信息的例子,含代码,分享哦,

    /// <summary> /// 读取URL数据内容 /// </summary> /// <param name="url">网址</ ...

  6. App内切换语言

    前几天客户提需求,对App增加一个功能,这个功能目前市面上已经很常见,那就是应用内切换语言.啥意思,就是 英.中.法.德.日...语言随意切换. (本案例采用Data-Bingding模式,麻麻再也不 ...

  7. 动画制作 手机APP制作以及响应式的实现

    babber 宽度:浏览器的100% 原则上:高度-=图片高度 banner img 宽度:图片的实际宽度 高度:充满父容器 使用定位:让图片在父容器中绝对居中.     <!DOCTYPE h ...

  8. STM32学习笔记(五)——通用定时器计数延时

    STM32定时器概述 STM32F40x系列总共最多有14个定时器,定时器分为三类:基本定时器.通用定时器和高级定时器.它们的都是通过计数来达到定时的目的,和51的定时器差不多,基本原理都是一样的,就 ...

  9. html字体问题

    正如咱们在上一章中解说的那样,HTML元素使页面规划者能够对文档的构造进行符号.HTML标准列出了浏览器应该怎么显现这些元素的攻略.例如,您能够合理地保证强元素的内容将显现粗体.此外,您能够非常信赖大 ...

  10. centos7安装httpd和php

    centos7许多命令都变了,又要重新记了. centos7默认安装了httpd吧?记不清了,看一下: rpm -qa |grep httpd 没有的话,安装一下吧. yum -y install h ...