从接触android起,到处都能看到context(上下文)的身影,查看源代码之后你会发现,它仅仅是个抽象类,详细实现都在ContextWrapper实现。

当你去查看android的源代码时,你会发现activity。service和application都继承自ContextWrapper。也就是说它们都是context的子类,那我们应该怎样给context的赋值呢?

非常多时候在acitivity中给context赋值时直接传一个this,这个this就是xxxActivity.this。也就是XXXActivity的上下文。当然刚開始不懂的时候会直接写getApplicationContext(),当然两者的差别是非常明显的,XXXActivity.this返回的当前Activity的实例。getApplicationContext()返回的是application的实例,两者的生命周期差非常多,application贯穿整个app,activity的生命周期相信你非常清楚了,所以不能乱用,防止内存泄漏

1.dialog

dialog依附于activity存在。所以直接用XXXActivity.this就好,当activity消失的时候dialog也就销毁了

2.activity

上面我们已经说过了,直接使用XXXActivity.this。返回的是当前的activity实例,当前activity销毁时,一起销毁

3.service,broadcastReceiver

两者都能够

总结:和UI操作相关的不建议使用getApplicationContext(),一般都使用和activity相关的context。其余的操作,看详细情况,依据存在的生命周期的长度作出选择

还有就是非常抱歉,临时还不打算更新IM部分,先研究照相机的这部分。后期更新

android XXXActivity和getApplicationContext()差别的更多相关文章

  1. android:context,getApplicationContext()生命周期

    getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁Activity.this的context 返回当前activity的上下文,属于activity ...

  2. android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds差别

    手工设置文本与图片相对位置时.经常使用到例如以下方法: setCompoundDrawables(left, top, right, bottom) setCompoundDrawablesWithI ...

  3. android:layout_gravity和android:gravity属性的差别

    gravity的中文意思就是"重心",就是表示view横向和纵向的停靠位置 android:gravity:是对view控件本身来说的,是用来设置view本身的文本应该显示在vie ...

  4. Android编程容易犯的错误之一

    1.设置TextView的文本颜色 TextView tv; ... tv.setTextColor(R.color.white); 其实这样设置的颜色是 R.color.white的资源ID值所代表 ...

  5. Android 上下文对象

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40481055,本文出自:[张鸿洋的博客] 1.Context概念 其实一直想写一 ...

  6. Android Context上下文解析

    1.Context概念 Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源.启动一个新的Activity.获取系统 ...

  7. Android Context 上下文 你必须知道的一切

    本文转载于:http://blog.csdn.net/lmj623565791/article/details/40481055 转载请标明出处:http://blog.csdn.net/lmj623 ...

  8. android开发常见编程错误总结

    1.设置TextView的文本颜色 1 2 3 TextView tv; ... tv.setTextColor(R.color.white); 其实这样设置的颜色是 R.color.white的资源 ...

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

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

随机推荐

  1. _bbox_pred函数

    fast中的_bbox_pred函数和faster中的bbox_transform_inv是一样的,是将框进行4个坐标变换得到新的框坐标.fast中是将selective search生成的框坐标进行 ...

  2. 网络爬虫之框架(Scrapy)

    Scrapy爬虫框架 爬虫框架是实现爬虫功能的一个软件结构和功能组件集合. 爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫. Scrapy爬虫框架结构:

  3. sql备份

    SELECT id,Name FROM TeachSite GROUP BY id select * from #temp as [type], SchoolRollID,SUM(Chargeable ...

  4. css float属性详解

    定义和用法 float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它本身是何种元素.如果浮动非 ...

  5. ie兼容的解决办法,6,7、8、9、10

    在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <!Doctype html> ...

  6. 零基础入门学习Python(30)--文件系统:介绍一个高大上的东西

    知识点 os,os.path模块中关于文件.目录常用的函数使用方法 在使用os模块,需要先进行import操作: import os os模块中关于文件/目录常用的函数使用方法 函数名 函数作用 示例 ...

  7. 数组排序函数-php数组函数(一)

    数组排序,共13个 函数中有u的,能自定义比较函数:有k的,按照键来排序:有r(reverse)的,倒序:有a(association)的,一定是键值关联,除了rsort() usort() sort ...

  8. python中基于tcp协议的通信(数据传输)

    tcp协议:流式协议(以数据流的形式通信传输).安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信) tcp协议在OSI七层协议中属于传输层,它上承用户层的数据收发,下启网络层.数据 ...

  9. TCP传输的三次握手四次挥手策略

    为了准确无误地数据送达目标处,TCP协议采用了三次握手策略.用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达.握手中使用了TCP的标志:SYN和ACK 发 ...

  10. 字符串类String类的判断功能

    StringDemo.java /* * Object:是类层级结构中的根类,所有的类都直接或间接的继承自该类. * 如果一个方法的形式参数是Object,那么这里我们就可以传递它的任意的子类对象. ...