Context的理解
- Context是提供了关于应用环境,全局信息的抽象类
- 通过它的对象,可以操作系统应用的相关资源
- 使用:
-
- context.xxxx()
- 将context作为实参传入
- Context最主要的功能是加载和访问一些资源
-
- 启动停止服务
- 发送/注册广播
- 加载布局/创建视图对象
- 获取应用环境的全局信息:
-
- getApplicationContext()
- getApplicationInfo()
- getContentResolver()
- getPackageName
- getPackageManaget()
- getResources()
- getAssets()
- getSharedPreferences()
- String getString(int id)
- getSystemService()
- 实现分类
-
- Activity
- Service
- Application:
-
- 特点 : 1.每个应用都有一个对象,单例 2.context类型的对象都可以得到此对象
- 应用全局数据内存共享容器
- 生命周期
-
- 创建:启动应用且其对象不存在(创建应用的进程之后)
- 死亡:应用退出不会销毁Application对象 进程被杀死后才会销毁
- 其他实现
- 区别
-
- 不同的功能作用
- 生命周期不一样
- 选择Activity 还是 getApplicationContext()?
-
- 显示Dialog时必须用Activity
- 使用Adapter时最好用 Activity
- 显示地图时 必须用ApplicationContext
- 其他情况下两者皆可
-
- 选择Activity 可能会导致 Activity对象不能回收 导致内存泄露