五陵年少金市东,银鞍白马渡春风。这篇文章主要讲述android XXXActivity和getApplicationContext()差别相关的知识,希望能为你提供帮助。
从接触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也就销毁了
【android XXXActivity和getApplicationContext()差别】2.activity
上面我们已经说过了,直接使用XXXActivity.this。返回的是当前的activity实例,当前activity销毁时,一起销毁
3.service,broadcastReceiver
两者都能够
总结:和UI操作相关的不建议使用getApplicationContext(),一般都使用和activity相关的context。其余的操作,看详细情况,依据存在的生命周期的长度作出选择
还有就是非常抱歉,临时还不打算更新IM部分,先研究照相机的这部分。后期更新
推荐阅读
- Android LayoutInflater
- 0-Android编译系统简要介绍和学习计划
- app测试点-1
- FaceBook推出的Android图片载入库-Fresco
- Android中SQLite的使用
- Android、iPhone和iPad的7款最佳移动视频编辑应用
- 7款最佳服务器监控软件和工具合集(哪个最好())
- 不能错过的10大最佳iPhone广告拦截器合集
- Windows的10款最佳备份软件合集(付费和免费)