试图向朋友解释Android中的上下文

时间:2011-03-25 14:00:44

标签: android

我想向朋友解释背景。文档中写的上下文是它是系统资源(传感器,振动器等)的接口,但这是否意味着内存,CPU等?

而且,上下文是对活动的引用?我的意思是可以比较一个上下文等于iOS编程中的uiviewcontroller,应用程序上下文是app委托吗?我还在学习Android,所以我可能不是最好的答案。如果有人能就此提供全面的答复,我将非常感激。

不要说英语为母语,所以我也想知道编程中的上下文含义。

3 个答案:

答案 0 :(得分:6)

  

我正在尝试解释上下文   朋友。上下文写在   文档是它是接口   到系统资源(传感器,   振动器等)但这意味着什么   内存,CPU等?

不,Java语言的执行和内存模型隐式提供了内存和CPU的“接口”。

  

而且,也是背景   对活动的引用?

活动是一种背景。您可以在“间接子类”下获取从Context in the docs继承的完整类列表。

  

我的意思是   可以比较一个上下文   等于iOS中的uiviewcontroller   编程和应用程序上下文   应用代表?我仍在学习   Android所以我可能不是最好的   回答。如果任何人可以提供   对此我将是一个彻底的答案   非常感谢。

我认为两者完全不同。您可以查看Tasks and the Back Stack以查看有关活动的更多信息,将其视为松散耦合的独立单元。应用程序中应用程序的子类可能类似于iOS中的应用程序委托。

  

不要说英语为母语   所以我也想知道   上下文意味着编程。

英语definition可能有所帮助:

  2:有什么情况   发生:一组条件   存在于何时何地发生

在编程中,“上下文”非常接近这个定义。上下文通常会告诉函数或对象以下内容的答案:

  • 我在哪儿?
  • 资源X在哪里?
  • 功能Y是否可用?
  • 我刚才在做什么? (在C的情况下尤其常见)

老实说,我认为你可以在不了解Context的情况下在Android编程方面取得很大进展。

答案 1 :(得分:3)

android中的上下文是一个访问几个东西的基本界面:

  1. 系统服务。振动器,传感器等,正如您已经提到的那样。
  2. 资源(strings.xml,共享首选项等)。
  3. 观点,属于上下文。
  4. Context可以被描述为代码的编程环境。它是代码执行的上下文。

    上下文不能仅仅链接到一个活动,Application,Dialog,Service和其他人也可以实现它。

    在这种特定情况下的上下文可以表示为您可以访问的对象和事物的云,您可以看到它们。从活动中,您可以访问视图,服务和资源。在应用程序上下文中没有视图,但您仍然可以看到资源和服务。等等。

答案 2 :(得分:1)

顾名思义,它是应用程序/对象当前状态的上下文。它允许新创建的对象了解正在发生的事情。通常,您可以调用它来获取有关程序其他部分(活动,包/应用程序)的信息

您可以通过调用getApplicationContext(),getContext(),getBaseContext()或this(在活动类中时)来获取上下文。

上下文的典型用法:

创建新对象:创建新视图,适配器,监听器:

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

访问标准公共资源:LAYOUT_INFLATER_SERVICE,SharedPreferences等服务

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

隐式访问组件:关于内容提供商,广播,意图

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