什么时候用Application的Context,什么时候用Activity的Context
来源:互联网 发布:淘宝脸部拍摄自助开通 编辑:程序博客网 时间:2024/04/29 16:37
转自 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0526/2935.html
单例模式用application的context
看使用的周期是否在activity周期内,如果超出,必须用application;
常见的情景包括:AsyncTask,Thread,第三方库初始化等等。
还有些情景,只能用activity:比如,对话框,各种View,需要startActivity的等。
如果是UI控件需要使用Activity作为Context对象,但是默认的Toast实际上使用ApplicationContext也可以。
大家注意看到有一些NO上添加了一些数字,其实这些从能力上来说是YES,但是为什么说是NO呢?下面一个一个解释:
数字1:启动Activity在这些类中是可以的,但是需要创建一个新的task。一般情况不推荐。
数字2:在这些类中去layout inflate是合法的,但是会使用系统默认的主题样式,如果你自定义了某些样式可能不会被使用。
数字3:在receiver为null时允许,在4.2或以上的版本中,用于获取黏性广播的当前值。(可以无视)
注:ContentProvider、BroadcastReceiver之所以在上述表格中,是因为在其内部方法中都有一个context用于使用。
好了,这里我们看下表格,重点看Activity和Application,可以看到,和UI相关的方法基本都不建议或者不可使用 Application,并且,前三个操作基本不可能在Application中出现。实际上,只要把握住一点,凡是跟UI相关的,都应该使用 Activity做为Context来处理;其他的一些操作,Service,Activity,Application等实例都可以,当然了,注意 Context引用的持有,防止内存泄漏。
0 0
- 什么时候用Application的Context,什么时候用Activity的Context
- 什么时候用Application的Context,什么时候用Activity的Context
- Android 什么时候用Application的Context,什么时候用Activity的Context
- Context 与 getApplicationContext 应该在什么时候用
- Application context和Activity context的区别
- Application context和Activity context的区别
- Application context和Activity context的区别
- Application context和Activity context的区别
- Application context和Activity context的区别
- Application context和Activity context的区别
- Application context和Activity context的区别
- Application、Activity、Context的关系
- Activity的context和Application的context的区别
- application的context和activity的context区别
- Application context和Activity context的区别及应用
- Activity共享变量的方法 -- Application context
- Context-----Activity,Application之间的交流使者
- Context-----Activity,Application之间的交流使者
- Git冲突解决之P4Merge
- HDU 4514 湫湫系列故事——设计风景线(并查集+树的直径)
- UVA - 10375 Choose and divide (唯一分解定理)
- AsyncTask使用方法
- java变量之间的交换问题
- 什么时候用Application的Context,什么时候用Activity的Context
- 51Nod-1285-山峰和分段
- 用O(1)的时间复杂度删除单链表中的某个节点
- 大数据IMF传奇行动绝密课程第21课:从Spark架构中透视Job
- 第一篇博客,学习一下触发器
- 慕课学习笔记
- 文章标题
- UVA - 10791 Minimum Sum LCM
- 运行tomcat9w.exe tomcat9.exe ,提示 指定的服务未安装unable to open the service 'tomcat9'