Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别
: 知之为知之,不知为不知是知也!
- 使用this, 说明当前类是context的子类,一般是activity application等;
this:代表当前,在Activity当中就是代表当前的Activity,换句话说就是Activity.this在Activity当中可以缩写为this.
Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁
- 使用getApplicationContext 取得的是当前app所使用的application,这在AndroidManifest中唯一指定。意味着,在当前app的任意位置使用这个函数得到的是同一个Context;
getApplicationContext(): 返回应用的上下文,生命周期是整个应用,应用摧毁,它才摧毁。
- 使用getContext获取的是当前对象所在的Context, Context通常翻译成上下文,我通常当成场景来理解。
- getApplication():andorid 开发中共享全局数据;
- getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文
我们在平时的开发中,有时候可能会需要一些全局数据,来让应用中得所有Activity和View都能访问到,大家在遇到这种情况时,可能首先会想到自己定义一个类,然后创建很多静态成员,不过andorid已经为我们提供了这种情况的解决方案:在Android中,有一个名为Application的类,我们可以在Activity中使用getApplication(),方法来获得,它是代表我们的应用程序的类,使用它可以获得当前应用的主题,资源文件中的内容等,这个类更灵活的一个特性就是可以被我们继承,来添加我们自己的全局属性。
参考:
Android 中this、 getApplicationContext()、getApplication()之间的区别_梦之星辰-怀_新浪博客
http://blog.sina.com.cn/s/blog_a72ec20c0101coso.html
android 中 涉及到context的时候this和this.getApplictionContext的区别 - liuyun - ITeye技术网站
http://liuyun025.iteye.com/blog/1139970
Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别的更多相关文章
- Android中dip, dp, px,pt, sp之间的区别:
Android中dip.dp.sp.pt和px的区别 1.概述 过去,程序员通常以像素为单位设计计算机用户界面.例如:图片大小为80×32像素.这样处理的问题在于,如果在一个每英寸点数(dpi)更 ...
- Android进阶笔记08:Android 中Activity、Window和View之间的关系
1. Android 中Activity.Window和View之间的关系(比喻): Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图) LayoutI ...
- Android中adb push和adb install的使用区别
Android中adb push和adb install的使用区别 转载 本篇文章由史迎春(@三俗小女子)投稿.转载请注明原文地址. 在Android实际开发中,经常会使用adb命令,安装应用程序可 ...
- Spring中Model、ModelMap及ModelAndView之间的区别
Spring中Model.ModelMap及ModelAndView之间的区别 1. Model(org.springframework.ui.Model)Model是一个接口,包含addAttr ...
- C#中string.Empty、""和null 之间的区别
1.C#中string.Empty.""和null 之间的区别 (http://blog.csdn.net/henulwj/article/details/7830615)
- Android 中this、 getApplicationContext()、getApplication()之间的区别
this:代表当前,在Activity当中就是代表当前的Activity,换句话说就是Activity.this在Activity当中可以缩写为this. getApplicationContext( ...
- Android中Activity.this,getApplicationContext(),getBaseContext()和this详解
转自:http://android.tgbus.com/Android/tutorial/201103/346236.shtml 在使用Android上下文参数的时候经常分不清Activity.thi ...
- Android中Handler 、Thread和Runnable之间的关系
在多线程编程的时候,我们经常会用到Handler,Thread和Runnable这三个类,我们来看看这三个类之间是怎么样的关系? 首先说明Android的CPU分配的最小单元是线程,Handler一般 ...
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
http://blog.csdn.net/cjjky/article/details/6441104 在Android中的不同Activity之间传递对象,我们可以考虑采用Bundle.putSeri ...
随机推荐
- qt-5.6.0 移植之qt源码编译
其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...
- PHP环境搭建——Apache、Mysql、PHP单独安装(for Windows)
提示: 安装之前先要安装vcredist_x86.exe或vcredist_x64.exe(vc6,vc9,vc11等,和下面对应). 确保apache和php是用同样版本的编译器编译出来的,如果是v ...
- MyBatis 中 Result Maps collection already contains value for xxx 错误原因
出现此类错误的原因是同一个DAO操作多个Mapper导致的,将Mapper配置文件的 ResultMap的ID修改成不相同即可解决
- phpstorm配置代码自动同步到服务器
首先找到你的菜单栏找到Tools 然后点击配置 填写你的服务器信息 填写好项目目录 选择自动上传
- Node.js——Async
一:流程控制 为了适应异步编程,减少回调的嵌套,我尝试了很多库.最终觉得还是async最靠谱. 地址:https://github.com/caolan/async Async的内容分为三部分: 流程 ...
- wx.ListCtrl简单使用例子
效果图: 示例代码: #! /usr/bin/env python #coding=utf-8 import wx import sys packages = [('jessica alba', 'p ...
- ansible中tag的用法
Tags 根据官方文档介绍: ansible允许通过自定义的关键字来给playbook中的资源打上标签,然后只运行标签标记的那个task任务. 例如,可能有个完成的OS配置,然后特定的步骤标记为“nt ...
- How to call getClass() from a static method in Java?
刚才在学习Java 使用properties类,遇到这样的错误: Cannot make a static reference to the non-static method getClass() ...
- opencv-3.x.0-x86-mingw32-staticlib-gcc5.3.0-20160712.7z
折腾了半天 用 cmake 3.5.0 + gcc5.3.0 编译 opencv3.x.0 静态库 opencv-3.0.0-x86-mingw32-staticlib-gcc5.3.0-201607 ...
- C Primer Plus_第一章_概览_复习题与编程练习
REVIEW 1.就编程而言,可移植性表示什么? me 一个系统上编写的程序经过很少改动或者不需改动就可以在另一个系统上运行.如果修改是必须的,则通常只改变伴随主程序的一个头文件中的几项内容即可.(P ...