Android Context解析
2015-11-12 10:52
357 查看
Android Context解析
郭神:Android Context完全解析,你所不知道的Context的各种细节鸿洋:Android Context 上下文 你必须知道的一切
1.Context类型
android.content.Context
ContextWrapper是上下文功能的封装类。
ContextImpl则是上下文功能的实现类。
ContextThemeWrapper是一个带主题的封装类。
2.Context数量
Context数量 = Activity数量 + Service数量 + 1
3.Context使用
数字1:启动Activity在这些类中是可以的,但是需要创建一个新的task。一般情况不推荐。
数字2:在这些类中去layout inflate是合法的,但是会使用系统默认的主题样式,如果你自定义了某些样式可能不会被使用。
数字3:在receiver为null时允许,在4.2或以上的版本中,用于获取黏性广播的当前值。(可以无视)
注:ContentProvider、BroadcastReceiver之所以在上述表格中,是因为在其内部方法中都有一个context用于使用。
4.获取Application Context
getApplication():语义性非常强,一看就知道是用来获取Application实例的,但是这个方法只有在Activity和Service中才能调用的到。
getApplicationContext():getApplicationContext()方法的作用域会更广一些,任何一个Context的实例,只要调用getApplicationContext()方法都可以拿到我们的Application对象。
getBaseContext():得到的是一个ContextImpl对象,是Context功能的实现类。
5.自定义Application
Application全局只有一个,它本身就已经是单例了,无需再用单例模式去为它做多重实例保护。
public class MyApplication extends Application { private static MyApplication app; public static MyApplication getInstance() { return app; } @Override public void onCreate() { super.onCreate(); app = this; } }
相关文章推荐
- android ccid开发笔记1
- AndroidManifest.xml文件详解(meta-data)
- android移动View位置(动画)
- Android.mk 简介(二)
- Android基础入门教程——8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash
- Android 带动画的自定义Toast
- Android 手动显示和隐藏软键盘
- Android 如何优雅的获取屏幕的高度和宽度
- Xamarin.Android关于Fragment(一)
- AndroidStudio插件GsonFormat快速实现JavaBean
- 今天使用PullToRefreshListView时遇到Item点击事件失效问题,特此记下解决办法
- Android画图之Matrix
- Android 内存溢出解决方案(OOM)
- Android之项目推荐使用的第三方库,有助于快速开发,欢迎各位网友补充
- Android图片缩放方法
- Android Studio 系列文章(10)—AS中获取SHA1值
- Android Fragment 真正的完全解析(上)
- AndroidManifest.xml文件详解(permission-group)
- android shape的使用详解以及常用效果(渐变色、分割线、边框、半透明阴影效果等)
- AndroidManifest.xml文件详解(permission)