Android中的Context详解

Android Studio开发基础之Context用法说明 1、Context说明               Context是一个用于访问全局信息的接口,如应用程序的资源(如图片,字符串等),一些常用的组件继承自Context,如Activity和Service等等。        如利用Java代码创建一个textView,textView的第一种setText()方法直接传入一个字符串,第二种方法传入一个整形的id(位于values\\strin 阅读详情

Android基础概念Context的作用

Context字面意思上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity、Service以及BroadcastReceiver。 常规需要Context实例的方法主要有各种Service实现的类,比如说SensorManager在实例化时需要getSystemService(String)方法就必须由Context的实例执行,还有一些私有的文件系统I/O比如说openFileInput以及常用的Toast的makeText方法。

android context理解

在android中context可以作很多操作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。
比如一个activity的onCreate:
protected void onCreate(Bundle state) {
        super.onCreate(state);

        TextView label = new TextView(this); //传递context给view control
        label.setText("Leaks are bad");

        setContentView(label);
}
把activity context传递给view,意味着view拥有一个指向activity的引用,进而引用activity占有的资源:view hierachy, resource等。
这样如果context发生内存泄露的话,就会泄露很多内存。
这里泄露的意思是gc没有办法回收activity的内存。

Leaking an entire activity是很容易的一件事。

当屏幕旋转的时候,系统会销毁当前的activity,保存状态信息,再创建一个新的。

比如我们写了一个应用程序,它需要加载一个很大的图片,我们不希望每次旋转屏 幕的时候都销毁这个图片,重新加载。实现这个要求的简单想法就是定义一个静态的Drawable,这样Activity 类创建销毁它始终保存在内存中。
实现类似:
public class myactivity extends Activity {
        private static Drawable sBackground;
        protected void onCreate(Bundle state) {
                super.onCreate(state);

                TextView label = new TextView(this);
                label.setText("Leaks are bad");

                if (sBackground == null) {
                        sBackground = getDrawable(R.drawable.large_bitmap);
                }
        label.setBackgroundDrawable(sBackground);//drawable attached to a view

        setContentView(label);
        }
}
这段程序看起来很简单,但是却问题很大。当屏幕旋转的时候会有leak(即gc没法销毁activity)。
我们刚才说过,屏幕旋转的时候系统会销毁当前的activity。但是当drawable和view关联后,drawable保存了view的 reference,即sBackground保存了label的引用,而label保存了activity的引用。既然drawable不能销毁,它所 引用和间接引用的都不能销毁,这样系统就没有办法销毁当前的activity,于是造成了内存泄露。gc对这种类型的内存泄露是无能为力的。

避免这种内存泄露的方法是避免activity中的任何对象的生命周期长过activity,避免由于对象对 activity的引用导致activity不能正常被销毁。我们可以使用application context。application context伴随application的一生,与activity的生命周期无关。application context可以通过Context.getApplicationContext或者Activity.getApplication方法获取。

避免context相关的内存泄露,记住以下几点:
1. 不要让生命周期长的对象引用activity context,即保证引用activity的对象要与activity本身生命周期是一样的
2. 对于生命周期长的对象,可以使用application context
3. 避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对外部对象引用导致的生命周期变化
根据packageName构造Context 

通常情况下获取当前应用的context的方法是getApplicationContext,
但是通过根据其他的packageName如何构造 Context呢? 
Android平台的应用实例其实还可以通过其他方式构造。
比如代码   
     try 
    {
            Context ctx= createPackageContext("com.android123.Cwj", 0);

            //ctx已经是com.android123.cwj的实例
    } 
      catch (NameNotFoundException e) 
      {
        //可能由于 pacakgeName不存在所以必须处理该异常        
      }
复制代码需要注意的是,createPackageContext方法的第二个参数可选为CONTEXT_INCLUDE_CODE  和 CONTEXT_IGNORE_SECURITY ,
定义分别为4和2,上面为0。一般忽略安全错误问题可以通过CONTEXT_IGNORE_SECURITY 标记,
同时可能还需要处理 SecurityException 异常.

[Android] Context应该怎么写? 


如果想要弹出一个AlertDialog,要写如下的代码 

view sourceprint?1 AlertDialog.Builder alert =new AlertDialog.Builder(this);  

2 alert.setTitle("Warning");  

3 alert.setMessage("Wrong time!");  

4 alert.show(); 

 


这里构造方法的原型是AlertDialog.Builder(Context arg) 需要一个Context类的对象作为参数,一般我们都在Activity里写,所以用this,表示在当前的会话中弹出AlertDialog。

 


在我的一个程序里,我自定义了一个接口Public interface CustomPickerListener,在实现这个接口的方法时我需要弹出来一个AlertDialog,这里,参数表里填写this的话会提示错误:The constructor AlertDialog.Builder(new CustomPickerListener(){}) is undefined.


其实这个地方写this很明显是错误的,但是要写什么才能达成目的呢?


官方文档上对context的解释是Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.


于是我就试着写上了我程序的 包.目标类.this ,如下 

view sourceprint?1 AlertDialog.Builder alert =new AlertDialog.Builder(com.android.alcoholtest.AlcoholTest.this); 

然后就成功了


Android中Activity共享变量的另一方法:Application context

Android中在不同Activity中传递变量,通常使用Intent中Bundle添加变量的操作方法。

  view plaincopy to clipboardprint?

  Intent intent = new Intent();

  intent.setClass(A.this, B.class);

  Bundle bundle = new Bundle();

  bundle.putString("Info", "Information");

  intent.putExtras(bundle);

  startActivity(intent);

  Intent

  intent = new Intent();

  intent.setClass(A.this, B.class);

  Bundle bundle = new Bundle();

  bundle.putString("Info", "Information");

  intent.putExtras(bundle);

  startActivity(intent);

  不过在多个Activity中经常使用同一变量时,使用Bundle则比较麻烦,每次调用Activity都需要设置一次。

  如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。

  新建一个类,继承自Application

  view plaincopy to clipboardprint?

  class MyApp extends Application {

  private String myState;

  public String getState() {

  return myState;

  }

  public void setState(String s) {

  myState = s;

  }

  }

  class MyApp extends

  Application {

  private String myState;

  public String getState() {

  return myState;

  }

  public void setState(String s) {

  myState = s;

  }

  }

  在AndroidManifest.xml的application加个name属性就可以了,如下面所示:

  view plaincopy to clipboardprint?

  

  < p> 

  android:name=".MyApp" android:icon="@drawable/icon"

  android:label="@string/app_name">

  使用时:

  view plaincopy to clipboardprint?

  class Blah extends Activity {

@Override

  public void onCreate(Bundle b){

  ...

  MyApp appState = ((MyApp)getApplicationContext());

  String state = appState.getState();

  ...

  }

  }

  class Blah extends

  Activity {

  @Override

  public void onCreate(Bundle b){

  ...

  MyApp appState = ((MyApp)getApplicationContext());

  String state = appState.getState();

  ...

  }

  }

  英文引用:http://stackoverflow.com/questions/708012/android-how-to-declare- global-variables

  The more general problem you are encountering is how to save stateacross several Activities and all parts of your application. A staticvariable (for instance, a singleton) is a common Java way of achievingthis. I have found however, that a more elegant way in Android is toassociate your state with the Application context.

  --如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。

  As you know, each Activity is also a Context, which is informationabout its execution environment in the broadest sense. Your applicationalso has a context, and Android guarantees that it will exist as asingle instance across your application.

  --每个Activity 都是Context,其包含了其运行时的一些状态,android保证了其是single instance的。

  The way to do this is to create your own subclass of android.app.Application,and then specify that class in the application tag in your manifest.Now Android will automatically create an instance of that class andmake it available for your entire application. You can access it fromany context using the Context.getApplicationContext() method (Activityalso provides a method getApplication() which has the exact sameeffect):

  --方法是创建一个属于你自己的android.app.Application的子类,然后在manifest中申明一下这个类,这是 android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。

[小技巧]在任意位置获取应用程序Context - [Android学习笔记]

Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context, 而在某些工具类中要获取就很麻烦了。为此,我们可以自定义一个Application类来实现这种功能。

import android.app.Application;

public class MyApplication extends Application {
    private static MyApplication instance;

    public static MyApplication getInstance() {
        return instance;
    }

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        instance = this;
    }
}

然后在manifest中<application>中加入name="mypackage.MyApplication"就可以在任意类中使用MyApplication.getInstance()来获取应用程序Context了。
Android获取其他包的Context实例然后干坏事

Android中有Context的概念,想必大家都知道。Context可以做很多事情,打开activity、发送广播、打开本包下文件夹和数据库、获取classLoader、获取资源等等。如果我们得到了一个包的Context对象,那我们基本上可以做这个包自己能做的大部分事情。 

         那我们能得到吗?很高兴的告诉你,能!
      Context有个createPackageContext方法,可以创建另外一个包的上下文,这个实例不同于它本身的Context实例,但是功能是一样的。 


      这个方法有两个参数:
1。packageName  包名,要得到Context的包名
2。flags  标志位,有CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY两个选项。CONTEXT_INCLUDE_CODE的意思是包括代码,也就是说可以执行这个包里面的代码。CONTEXT_IGNORE_SECURITY的意思是忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。 


      下面给个小例子,执行另外一个包里面的某个类的方法。
      另外一个包的包名是chroya.demo,类名Main,方法名print,代码如下: 

Java代码 
package chroya.demo;   
  
import android.app.Activity;   
import android.os.Bundle;   
import android.util.Log;   
  
class Main extends Activity {   
       
    @Override  
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
    }   
       
    public void print(String msg) {   
        Log.d("Main", "msg:"+ msg);   
    }   
}  

package chroya.demo;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

class Main extends Activity {
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    
    public void print(String msg) {
        Log.d("Main", "msg:"+ msg);
    }
}       本包的调用Main的print方法的代码块如下: 

Java代码 
Context c = createPackageContext("chroya.demo", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);   
//载入这个类   
Class clazz = c.getClassLoader().loadClass("chroya.demo.Main");   
//新建一个实例   
Object owner = clazz.newInstance();   
//获取print方法,传入参数并执行   
Object obj = clazz.getMethod("print", String.class).invoke(owner, "Hello");  

Context c = createPackageContext("chroya.demo", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
//载入这个类
Class clazz = c.getClassLoader().loadClass("chroya.demo.Main");
//新建一个实例
Object owner = clazz.newInstance();
//获取print方法,传入参数并执行
Object obj = clazz.getMethod("print", String.class).invoke(owner, "Hello");       ok,这样,我们就调用了chroya.demo包的Main类的print方法,执行结果,打印出了Hello。 

      怎么样,这只是一个调用其他包的代码的例子,我们获取到Context,还可以做很多事情,当然,题目所说的坏事,还是不要做为好。 


QCM6490平台DDR测试:从QDUTT配置到眼图分析的实战指南 本文详细介绍了QCM6490平台DDR测试的全流程,从QDUTT工具安装配置到眼图分析,提供了实战操作指南和常见问题解决方案。通过具体案例分享,帮助工程师掌握DDR测试技巧,确保内存稳定性,特别适用于物联网和边缘计算设备的开发调试。 阅读详情

相关推荐

Windows版MySQL8.4.2LTS解压直用(下载免安装-绿色-项目打包直接使用-含卸载)

安装前运行微软常用运行库全集(也可能称为依赖)关于MySQL8中相关参数配置,可通过。选择8.5.2LTS长期服务版。选中密码,右键会直接复制。

xzzteach的博客 1442

Android Intent/Context Flags 使用

Android Intent Flags 使用 文章目录Android Intent Flags 使用一、基本使用二、Flags介绍1. 系统定义的Flags2. Actvity Flags测试工具FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_EXCLUDE_FROM_RECENTSFLAG_ACTIVITY_FORWARD_...

Jeson 笔记 2110

STM32+ESP8266接入OneNet物联网平台全流程

MQTT协议是物联网设备与云平台通信的主流轻量级消息传输标准,其发布/订阅模型天然适配嵌入式资源受限场景;OneJSON作为中国移动OneNet平台定制的数据格式,在标准JSON基础上精简Schema、降低解析开销,显著提升STM32等MCU的处理效率。该技术组合兼顾安全性、低功耗与工程可量产性,广泛应用于环境监测、智能仪表、工业传感器等远程数据采集系统。实际落地需协同完成云平台物模型定义、Token动态认证、MQTT Topic严格构造、AT指令可靠交互及单总线传感器数据融合等关键环节。本文以DS18B2

u5v6w7的博客 1120

Android中Context理解

Context对于Android开发人员来说并不陌生,项目中我们会经常使用Context来获取APP资源,创建UI,获取系统Service服务,启动Activity,绑定Service,发送广播,获取APP信息等等。那么Context到底是什么?Context又是怎么来实现以上功能的?在什么场景下使用不同的Context?一个APP中总共有多少个Context?这篇博客将从源码角度带你分析Andr...

持之以恒 9897

无人自行车平衡控制:最小二乘法动态零点拟合实践

本文探讨了无人自行车平衡控制中动态零点的重要性及实现方法。通过最小二乘法拟合车头角度与ROL值的线性关系,解决了固定零点在转向时导致的稳定性问题。实践表明,动态零点拟合能显著提升系统平衡稳定性并降低能耗。

uran的专栏 661

实战解析:如何通过LTspice仿真优化MOS管缓启动电路,解决上电冲击电流问题

本文详细解析如何通过LTspice仿真优化MOS管缓启动电路,有效解决上电冲击电流问题。文章从问题根源分析入手,介绍LTspice环境搭建、缓启动电路设计原理、参数优化技巧及实际工程问题排查,帮助工程师掌握MOS管电源开关电路的关键设计方法,提升系统可靠性和性能。

weixin_28683689的博客 516

Android Context 是什么?

至此,一个Android应用可能创建Context的地方基本分析结束。所有有关创建Context对象的地方都是在ActivityThread类中,该类就是整个应用的入口,也是整个应用的主线程。每个应用首先会创建一个Application对象,且一个应用只有唯一一个Application对象,之后再根据需求创建Activity或者Service。且在创建Activity或者Service的时候都会持有一份当前应用的Application对象,通过getApplication方法即可获得。

Dream It Possible 2934

从零复刻平衡小车(基于STM32F1)

平衡小车(基于STM32F1)

Legendyyy的博客 5042

揭秘Context(上下文)

最熟悉的陌生人——Context 刚刚学android或者js等,都会看见这个频繁的字眼——Context。 意为”上下文“。 本文主要记述,Context到底是什么、如何理解Context、一个APP可以有几个Context、Context能干啥、Context的作用域、获取Context、全局获取Context技巧。 思考: Java:万物皆对象。Flutter:万物皆组件。 俗语:”没对象...

手写我对你的温柔 9万+

基于AnimeGAN模型生成宫崎骏风格动漫照片

用于动画风格纹理和线条转换的灰度样式丢失;新颖的颜色重建损失,以保留内容图像的颜色;新的灰度对抗损失防止生成的图像从显示为灰度图像;使用深度可分卷积和反向残块的轻量级生成器,以实现更快的传输。实验表明,AnimeGAN可以对真实世界的照片进行变换场景动画风格的图像与高质量的动画视觉效果和显著优于最先进的风格化方法。# 生成宫崎骏风格图片 model = hub . Module('animegan_v1_hayao_60' , use_gpu = True)images:输入的图片数据。

优快云 精品推荐 3632

发那科机器人通信库使用指南与踩坑记录

GitHubNuGet(如本文基于该库,在 C# / .NET 下通过 TCP 与 FANUC 机器人控制器通信,实现读当前位姿、PR 寄存器、以及 DI/DO/GI/GO 等 IO 的读写。GitHubNuGet(如本文基于该库,在 C# / .NET 下通过 TCP 与 FANUC 机器人控制器通信,实现读当前位姿、PR 寄存器、以及 DI/DO/GI/GO 等 IO 的读写。

songhuangong123的博客 328

android context 实例,安卓Android Context类实例详解

1.例如下面的代码片段,Toast类的第一个参数接受一个Context对象:@Overrideprotected Dialog onCreateDialog(int id) {switch (id) {case 0:Builder builder = new AlertDialog.Builder(this);builder.setIcon(R.drawable.ic_launcher);buil...

weixin_32126843的博客 356

Python爬虫:抓取外卖平台餐厅菜单、价格与评价数据

美团外卖:国内领先的外卖平台之一,提供餐饮外卖、超市配送等服务。饿了么:另一大主流外卖平台,覆盖广泛的餐饮品类。等:国际性的外卖平台。在本文中,我们将以美团外卖为例,展示如何抓取餐厅的菜单、价格和评价等数据。我们会使用Python的爬虫库,如Scrapy和Selenium,来解决抓取任务。本文详细介绍了如何使用Python爬虫抓取外卖平台上的餐厅菜单、价格、评价等信息。我们展示了如何使用Scrapy和Selenium抓取静态与动态网页数据,如何清洗和存储数据,并讨论了如何应对外卖平台的反爬虫机制。

2201_76125261的博客 1500

安卓-Android什么是context?

原帖: link Android面试:来说一说Context吧,Android中的Context是什么?能干什么?怎么用呢?字节走动_Android关注42020.08.12 22:26:52字数 3,633阅读 813 Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?估计很多人说不

ruiruiddd的博客 279

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

安卓应用有几个context

最近看源码看到Context这一块,发现很多网上的博客对“安卓应用有几个context”这一个问题统一给出的答案是: Activity数量+Service数量+1 我通过源码的分析发现根本不是这样,Context的数量应该是: 2*(Activity数量+Service数量+1) 要搞清楚这个问题就需要研究Activity和Application的生成了,Activity和Application的生成都位于ActivityThread的performLaunchActivity方法源代码: Contex

whoami_I的博客 632

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

安卓c语言获取context,Android中Context详解 ---- 你所不知道的Context

二、 什么时候创建Context实例熟悉了Context的继承关系后,我们接下来分析应用程序在什么情况需要创建Context对象的?应用程序创建Context实例的情况有如下几种情况:1、创建Application 对象时, 而且整个App共一个Application对象2、创建Service对象时3、创建Activity对象时因此应用程序App共有的Context数目公式为:总Context实例...

weixin_26854475的博客 202

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

安卓c语言获取context,认识一下Android里的Context

认识一下Android里的Context侯亮(本文以Android 7.0为准)1 什么是Context?在Android平台上,Context是一个基本的概念,它在逻辑上表示一个运行期的“上下文”。其实何止是Android平台,在其他平台上,一样有上下文的概念,比如一个进程,其实也是个上下文。我们在编写最简单的C语言程序时,凭什么写一句简单的malloc()就可以申请到内存,写一句简单的open...

weixin_42396760的博客 412

安卓中的context详解

大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中    时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是    因为我们真正的不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个Cont

smile0528的博客 459

安卓c语言获取context,Android全局获取Context实例详解

Android全局获取Context实例详解在弹出Toast 启动活动 发送广播 操作数据库 使用通知等等时都需要Context如果操作在活动中进行是很简单的,因为活动本身就是一个Context对象但是当逻辑代码脱离了Activity类,此时使用Context就需要一些技巧了:我们可以定制一个自己的Application类,以便管理程序内一些全局状态信息,比如全局Context代码如下:publi...

weixin_33781072的博客 284

android的cantext对象,安卓Android Context类实例详解

1.例如下面的代码片段,Toast类的第一个参数接受一个Context对象:@Overrideprotected Dialog onCreateDialog(int id) {switch (id) {case 0:Builder builder = new AlertDialog.Builder(this);builder.setIcon(R.drawable.ic_launcher);buil...

weixin_34802266的博客 223

安卓中的Context

Context字面意思上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过 Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的 实例为Activity,而到了一个button的onCli

u011045817的专栏 1139

深度详解 Android 之 Context

在 Android 开发中、亦或是面试中都离不开四大组件的身影,而在创建或启动这些组件时,并不能直接通过 new 关键字后跟类名来创建实例对象,而是需要有它们各自的上下文环境,也就是本篇文章要讨论的 Context。Context 提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被 Android 系统所提供。它允许获取以应用为特征的资源和类型,是一个统领一些资源(应用程序环境变量等)的上下文。............

neuHenry 9181

Android安卓 如何在Service获取参数Context 以及AlertDialog.Builder(Context)的Context

我的程序主程序名称: B000Activity 在Service中调用参数Context 参数添加:B000Activity.b000.getApplicationContext() 我的需求是需要在NetWorkutils中调用参数Context 结束

暴走的山交君的博客 1434

Android Context 详解

Context是一个抽象基类。在翻译为上下文,是提供一些程序的运行环境基础信息。Context下有两个子类,是上下文功能的封装类(起到方法传递的作用,主要实现还是ContextImpl),而则是上下文功能的实现类。又有三个直接的子类,Service和。其中,是一个带主题的封装类,所说的主题就是指在AndroidManifest.xml中通过android:theme为Application元素或者Activity元素指定的主题,而它有一个直接子类就是Activity,所以Activity和Service。

Android 领域开发程序员,希望通过写博客的方式不断的总结提升自己,大家共同进步哦! 2673

Android Context详解

目录Context是什么Context继承树组件中的Context获取Context对象 Context是什么 1. Context表示上下文,表示一个交互的场景,为组件的运行提供各种能力(加载资源、启动Activity、获取系统服务、创建View等)及环境(系统信息,必要数据、标识,自定义数据等) 2. 组件必须运行在一个环境下(Context) 3. Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的实现由Android系统所提供。它允许获取以应用为特征的资源和类型,是一个统领一些资源

linnnnn.的博客 503

Android中Context详解

给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是因为我们真正的不懂Context的原理、类结构关系。 Context,中文直译为“上下文”,SDK中对其说明如下:Interf

学习 2347
上一篇: 国内Android开发现状及职业规划浅析
下一篇: 如何导入android中的sample例子
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值