Android | Android上下文
来源:互联网 发布:丁建中知乎 编辑:程序博客网 时间:2024/06/10 21:00
在软件开发领域,上下文主要用于存储进程或应用运行时的资源和对象的引用,我们在接触其他系统和框架的时候也经常会碰到上下文的概念。
在Android应用框架中,根据作用域的不同,上下文可以分为两种:
一种是Activity界面的上下文,即Activity Context;
另一种是Android应用的上下文,即Application Context。
一、界面上下文(Activity Context)
界面上下文(Activity Context)在应用界面(Activity)启动的时候被创建,主要用于保存对当前界面资源的引用。界面上下文在Activity界面控制器类中被使用,当我们需要加载或者访问Activity相关的资源的时候,会需要用到该Activity的上下文对象(比如this)。界面上下文的生命周期跟Activity界面的是同步的,即当Activity被销毁的时候,其对应的上下文也被销毁了。同时,和该上下文有关的控件对象也将被销毁并回收。上下文也可以用于串联Android应用之中的对象和组件。
Context类中比较常用的方法如:
getApplicationContext:获取当前应用的上下文对象
getApplicationInfo:获取当前应用的完整信息并存于ApplicationInfo对象中,其中常用的信息包括包名packageName、图标icon以及权限permission等属性。
getContentResolver:获取ContentResolver对象,用于查询所需的Content Provider提供的信息。
getPackageManager:获取PackageManager对象,PackageManager的用途比ApplicationInfo更加广泛,该类可以从系统的PackageManagerService中获取安装包和运行进程的信息,作用于系统范围。
getPackageName:获取包名,包名(PackageName)可作为Android应用的唯一标志。
getResources:获取应用的资源对象Resource,该对象提供一系列的get方法来获取图形Drawable、字符串String以及视频Movie等资源。
getSharedPreferences:获取用于持久化存储的SharedPreferences对象。
getSystemService:获取系统级别服务的对象,Android应用框架为我们提供了丰富的系统服务,getSystemService方法就是用于获取这些系统服务对象并运用到应用开发中去的。
二、应用上下文(Application Context)
应用上下文(Application Context)在整个应用(Application)开始的时候被创建,用于保存对整个应用资源的引用,在程序中可以通过界面上下文的getApplicationContext方法或者getApplication方法来获取。在实际应用时候,我们通常会把应用上下文当作全局对象的引用来使用,对于不同的应用我们会定义应用对象来使用。
使用步骤:
1、定义继承自Application基类的类。
2、在配置文件中声明1中定义的类。<application>标签
3、可在应用程序的Activity界面中使用getApplicationContext来获取该应用的上下文对象来完成所需功能。
在Android应用框架中,android.app.Activity类和android.app.Application类都是从android.content.Context类继承而来的,所以,可以在Activity和Application中方便地使用this来代替对应上下文。
- Android上下文
- Android | Android上下文
- Android 上下文菜单实现
- Android 上下文菜单实现
- [android]Context 上下文
- [android]上下文菜单
- Android--ContextMenu上下文菜单
- Android上下文菜单
- Android 上下文菜单
- android 上下文菜单
- 【Android】上下文菜单contextMenu
- Android 上下文比较
- Android Context 上下文
- android context上下文
- Android Context 上下文
- Android获取上下文Context
- android context 上下文
- Android上下文对象Context
- 最新版WebStorm设置服务器-局域网内其他设备访问(移动端手机访问测试等)
- https生成与配置
- 购物车发货+未发货
- 常用颜色的RGB值
- 程序员面试IT公司的33个小贴士
- Android | Android上下文
- python try: pass except:pass流程控制
- 我对Java程序猿的学习的建议
- Scala学习(八)---Scala继承
- 结构化学习(Structured Learning)
- 数据挖掘学习------------------2-关联规则-2-Apriori算法
- 3dmax插件导出x格式异常
- ptam tracking
- 获取系统当前时间 年月日