Android学习笔记--Context到底是什么?

温故而知新。


对于初学者来说,关于Context三言两语还真是说不清楚。 下面列举几个在 tackoverflow 上关于Context人气较高的解释,理解性翻译下。

(答一)

简单的理解:

顾名思义,它是应用或者对象当前状态的上下文,它让新创建的对象明白自己持有什么。一般情况下你调用它去获取一些信息。这些信息可以是该程序中别的一部分例如:activity/application/package。

你可以通过以下的几种方法获取Context:

getApplication();  getContext(); getBaseContext(); 如果当前的类是activity时 直接使用this


典型的例子:

1.当你创建新的对象的时候(views,adapters,listeners):

TextView tv = new TextView(getContext());
ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);

2.当你获取一些资源的时候(Service 例如LAYOUT_INFLATER_SERVICE,SharedPreferences)

context.getSystemService(LAYOUT_INFLATER_SERVICE)
getApplicationContext().getSharedPreferences(*name*, *mode*);

3.当你获取一些内部的元素内容的时候(内容提供者,广播,Intent)

getApplicationContext().getContentResolver().query(uri, ...);

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------(答二)

Context的定义:

Context代表环境的数据

它提供了一种存取数据的方式(或者说是使用数据的途径)像是数据库那样

举个栗子:
有一个家刚开张不久的软件公司,小X就是这个公司的CEO。
公司里还有个很牛X的架构师,公司里面的一切都是他做的,例如数据库,UI。
然后CEO招了一个新的开发者。
架构师告诉这个新人他该做什么:很基础的一些技能例如数据库和UI。

再举个栗子(这个例子很形象):

住宾馆的时候,你懒得出门就想在宾馆吃早饭中饭和晚饭,对吗?
当你待在宾馆里面的时候,还会遇到一些问题,例如这个宾馆的wifi密码是什么,怎么没有一次性牙刷之类的,你会怎么做?
你应该会叫宾馆的服务员过来把这些东西给你。
那么在app中,这个服务员就像是Context,而你就像是简单的activity。那些早中午饭牙刷之类的东西就像是资源。

Context都能做什么呢

1.获取资源
2.启动一个新的activity
3.创建新的View
4.获取系统服务

Context是Activity,Service,Application...的父类

 
获取Context的方式:

getApplication();  getContext(); getBaseContext(); 如果当前的类是activity时 直接使用this


附上原文地址  http://stackoverflow.com/questions/3572463/what-is-context-on-android  



此文更多的是为了巩固自己已学知识,如有不正确的地方,欢迎指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值