zoukankan      html  css  js  c++  java
  • Android中Context到底是什么以及用法

      这是Stackoverflow上一位网友的回答:

      原地址:http://stackoverflow.com/questions/3572463/what-is-context-in-android

      

    As the name suggests, its the context of current state of the application/object. It lets newly created objects understand what has been going on. Typically you call it to get information regarding another part of your program (activity, package/application)

    You can get the context by invoking getApplicationContext()getContext()getBaseContext() or this (when in the activity class).

    Typical uses of context:

    • Creating New objects: Creating new views, adapters, listeners:

      1 TextView tv = new TextView(getContext());
      2 ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);
    • Accessing Standard Common Resources: Services like LAYOUT_INFLATER_SERVICE, SharedPreferences:

      1 context.getSystemService(LAYOUT_INFLATER_SERVICE)   
      2 getApplicationContext().getSharedPreferences(*name*, *mode*);
    • Accessing Components Implicitly: Regarding content providers, broadcasts, intent

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

      注:NO1 表示Application context的确可以开始一个Activity,但是它需要创建一个新的task。这可能会满足一些特定的需求,但是在你的应用中会创建一个不标准的回退栈(back stack),这通常是不推荐的或者不是是好的实践。 

      NO2 表示这是非法的,但是这个填充(inflation)的确可以完成,但是是使用所运行的系统默认的主题(theme),而不是你app定义的主题。 

      NO3 在Android4.2以上,如果Receiver是null的话(这是用来获取一个sticky broadcast的当前 值的),这是允许的 

      getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁 
      Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁 
      getBaseContext()  返回由构造函数指定或setBaseContext()设置的上下文

      (图片及注来自http://gqdy365.iteye.com/blog/2149731

  • 相关阅读:
    (一)Redis初学教程之安装篇
    Redis常用数据类型
    css
    js常用内置对象、Dom对象、BOM对象
    CSS定位(postion)和移动(float)
    Razor模板引擎(C#版)语法
    虚拟化和反序列化
    id 自增------删除数据后恢复到删除前自增id
    SERVER全局数组
    文件路径操作
  • 原文地址:https://www.cnblogs.com/hua-hahaha/p/4394694.html
Copyright © 2011-2022 走看看