温故而知新。
对于初学者来说,关于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代表环境的数据
它提供了一种存取数据的方式(或者说是使用数据的途径)像是数据库那样
此文更多的是为了巩固自己已学知识,如有不正确的地方,欢迎指出。