展开

关键词

Android Context简介

目录 什么是Android Context Context意味着一个场景,一个场景就是我们和软件进行交互的一个过程。 从安卓程序的角度来看,Context是什么? 其实一个Activity就是一个Context,一个Service也是一个Context。 ? image.png Context 本身是一个抽象类,主要实现类为 ContextImpl,另外有子类 ContextWrapper 和 ContextThemeWrapper,这两个子类都是Context This is * an abstract class whose implementation is provided by * the Android system. 主要负责: 四大组件的交互 获取系统/应用资源 文件 数据库(SQLite) 其它辅助功能 参考 深入理解 Android 中的各种 Context

21330

Android Context 详解

Androidcontext可以作很多操作,但是最主要的功能是加载和访问资源。 在android中有两种context,一种是application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。 我们可以使用application context。 application context伴随application的一生,与activity的生命周期无关。 application context可以通过Context.getApplicationContext()或者Activity.getApplicationContext()方法获取。 避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对外部对象引用导致的生命周期变化 参考推荐: Android程序里面传Context对象 Android context(Application

1.8K60
  • 广告
    关闭

    【玩转 Cloud Studio】有奖调研征文,千元豪礼等你拿!

    想听听你玩转的独门秘籍,更有机械键盘、鹅厂公仔、CODING 定制公仔等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Androidcontext讲解

    image.png 目录 Androidcontext讲解 context Context,中文直译为“上下文”. 主要有三个作用: 1、它描述的是一个应用程序环境的信息,即上下文。 2、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类。 mApplicationInfo.className; if (forceDefaultAppClass || (appClass == null)) { appClass = "android.app.Application mPackageName.equals("android")) { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, " + data.info.name + ": " + e.toString(), e); } } } 参考 Android

    18350

    androidContext深入详解

    以下分别通过Context认知角度,继承关系,对象创建等方面androidContext做了深入的解释,一起学习下。 1、Context认知。 2、从两个角度认识Context。 第一:Activity继承自Context,同时Activity还实现了其他的interface,我们可以这样看,activity在语法上extends了Context,其本质上是一个Context,但同时其实现了许多 第二:Context本质上包含了场景的所有元素,故而设定其为abstract,Activity和Service继承自Context,它们本质上可以认为就是Context。 ";//1、每个工程都存在一个Application对象,默认的Application对象为android.app.Application,客户端可以重写 } try { java.lang.ClassLoader

    24520

    Android深入理解Context(一)Context关联类和Application Context创建过程

    前言 Context也就是上下文对象,是Android较为常用的类,但是对于Context,很多人都停留在会用的阶段,这个系列会带大家从源码角度来分析Context,从而更加深入的理解它。 在Android深入四大组件(一)应用程序启动过程这篇文章的最后讲了ActivityThread启动Activity。 frameworks/base/core/java/android/app/ActivityThread.java ? performLaunchActivity方法中有很多重要的逻辑,这里只保留了Application Context相关的逻辑,想要更多了解performLaunchActivity方法中的逻辑请查看Android frameworks/base/core/java/android/app/LoadedApk.java ?

    556100

    重新认识Android Context

    ContextAndroid系统中的地位很重要,它几乎无所不能,但它也不是你想用就能随便用的,谨防使用不当引起的内存问题。 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢? Android程序不像Java程序一样,随便创建一个类,写个main()方法就能运行,Android应用模型是基于组件的应用设计模式,组件的运行要有一个完整的Android工程环境,在这个环境下,Activity 可以这样讲,Context是维持Android程序中各组件能够正常工作的一个核心功能类。 Context源码如下 ? 源码中的注释是这么来解释Context的:Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。

    29830

    AndroidContext用法详解学习

    AndroidContext用法详解学习 本文我们一起来探讨一下关于AndroidContext的作用以及Context的详细用法,这对我们学习Android的资源访问有很大的帮助,文章中也贴出了一些关于 Android Context使用的示例代码,非常不错,以下是原文: ? Context基本概念 Context是什么? 1) Context是一个抽象类,其通用实现在ContextImpl类中。 #DIRECTORY_MUSIC}, * {@link android.os.Environment#DIRECTORY_PODCASTS}, * {@link android.os.Environment android.app.KeyguardManager * @see #LOCATION_SERVICE * @see android.location.LocationManager * @see #

    65150

    Android context(ApplicationActivity)与内存泄露

    android中的context可以做很多操作,但是最主要的功能是加载和访问资源。 在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。  application context可以通过Context.getApplicationContext或者Activity.getApplication方法获取。  使用Application,需要在 AndroidManifest.xml 文件注册,即android:name=".GApplication": <application android:icon android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation

    67120

    021android初级篇之androidContext

    021android初级篇之Android注解支持(Support Annotations) 定义:注解(Annotation),也叫元数据。 一种代码级别的说明。 v4 support library中的FragmentActivity的示例代码: import android.support.annotation.NonNull; import android.support.annotation.Nullable inflating the <fragment> tag. */ @Nullable @Override public View onCreateView(String name, @NonNull Context context, @NonNull AttributeSet attrs) { ... 参考链接 Android注解支持(Support Annotations)

    29630

    022android初级篇之androidContext

    022_01.png Context类 路径: /frameworks/base/core/java/android/content/Context.java 说明: 抽象类,提供了一组通用的API ContextWrapper类 路径 :\frameworks\base\core\java\android\content\ContextWrapper.java 说明: 正如其名称一样,该类只是对Context (Theme)相关的接口,即android:theme属性指定的。 Activity类 、Service类 、Application类都是Context的子类 创建Context实例 因此应用程序App共有的Context数目公式为: 总Context实例个数 = Service handleCreateService()函数位于 ActivityThread.java类 参考链接 AndroidContext详解 ---- 你所不知道的Context Android源码分析-

    20820

    Android深入理解Context(二)Activity和Service的Context创建过程

    前言 上一篇文章我们学习了Context关联类和Application Context的创建过程,这一篇我们接着来学习Activity和Service的Context创建过程。 Context提供的方法,务必要先创建Context。 Activity的Context会在Activity的启动过程中被创建,在Android深入四大组件(一)应用程序启动过程(后篇)的第二小节中,讲到了ActivityThread启动Activity的过程 深入理解Context(一)Context关联类和Application Context创建过程已经讲过了,我们来查看performLaunchActivity方法。 2.Service的Context创建过程 Service的Context创建过程与Activity的Context创建过程类似,也是在Service的启动过程中被创建。

    29960

    Android 复习笔记 —— 扒一扒 Context

    Android 复习笔记目录 唠唠任务栈,返回栈和生命周期 唠唠 Activity 的生命周期 唠唠 Context 本文永久更新地址: https://xiaozhuanlan.com/topic/ 最后的打印语句是: E/context: getApplication in Activity: luyao.android.App E/context: getApplicationContext in Activity: luyao.android.App E/context: getBaseContext in Activity: android.app.ContextImpl 关于 Activity 使用 Application 的 Context 创建 Dialog 并显示,会报如下错误: Caused by: android.view.WindowManager$BadTokenException at android.view.ViewRootImpl.setView(ViewRootImpl.java:951) at android.view.WindowManagerGlobal.addView

    13210

    深入理解 Android 中的各种 Context

    前言 网上关于 Context 的文章也已经有不少了,比如值得参考的有: Android Context完全解析,你所不知道的Context的各种细节 Android Context 到底是什么? This is * an abstract class whose implementation is provided by * the Android system. getBaseContext().getResources():" + getBaseContext().getResources()); } // 因为 Android mOverrideConfiguration); } return super.getResources(); } } 输出(我用的是小米手机): getResources: android.content.res.MiuiResources @3c660a7, getBaseContext().getResources():android.content.res.MiuiResources@5143954 可以看到,就像源码显示的那样,应用了

    36820

    NoSuchMethodException: [class android.content.Context, interface android.util.AttributeSet...

    PID: 6924 SIG: 9 ’话不多说,上Demo代码:** package com.example.canvastest; import android.content.Context; import context) { super(context); setFocusable(true); setFocusableInTouchMode(true) public SignalLightView(Context context, AttributeSet attrs, int defStyleAttr) (true); } public SignalLightView(Context context, AttributeSet attrs) { super(context context) { super(context); setFocusable(true); setFocusableInTouchMode(true)

    1.1K20

    Android Context完全解析,你所不知道的Context的各种细节

    那么本篇文章我们就讲点轻松的东西,不去分析那么复杂的源码了,而是来谈一谈大家都熟知的ContextContext相信所有的Android开发人员基本上每天都在接触,因为它太常见了。 Context类型 我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在哪里?划分界限又是什么呢? 其实简单点分析,Android程序不像Java程序一样,随便创建一个类,写个main()方法就能跑了,而是要有一个完整的Android工程环境,在这个环境下,我们有像Activity、Service、BroadcastReceiver 可以这样讲,Context是维持Android程序中各组件能够正常工作的一个核心功能类。 下面我们来看一下Context的继承结构: ? :name=".MyApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher" android

    18320

    Android Context完全解析,你所不知道的Context的各种细节

    那么本篇文章我们就讲点轻松的东西,不去分析那么复杂的源码了,而是来谈一谈大家都熟知的ContextContext相信所有的Android开发人员基本上每天都在接触,因为它太常见了。 Context类型 我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在哪里?划分界限又是什么呢? 其实简单点分析,Android程序不像Java程序一样,随便创建一个类,写个main()方法就能跑了,而是要有一个完整的Android工程环境,在这个环境下,我们有像Activity、Service、BroadcastReceiver 可以这样讲,Context是维持Android程序中各组件能够正常工作的一个核心功能类。 下面我们来看一下Context的继承结构: ? :name=".MyApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher" android

    84290

    避免AndroidContext引起的内存泄露

    Context是我们在编写Android程序经常使用到的对象,意思为上下文对象。 常用的有Activity的Context还是有Application的Context。 在Android中内存泄露很容易出现,而持有很多对象内存占用的Activity更加容易出现内存泄露,开发者需要特别注意这个问题。 本文讲介绍AndroidContext,更具体的说是Activity内存泄露的情况,以及如何避免Activity内存泄露,加速应用性能。 在这个过程中,Android系统会重新加载程序的UI视图和资源。 其他内存泄露问题 Android中糟糕的AsyncTask Android中Handler引起的内存泄露 Google为何这样设计OnSharedPreferenceChangeListener 避免内存泄露须谨记

    57710

    Android插件化基础2----理解Context

    为了让大家在后面更好的理解插件化的内容,我们本篇文章围绕Context(基于Android API 24)进行讲解,主要内容如下: 1、前言 2、Context的概念 3、Context的族谱 4、Context 家族成员源码分析 5、初始化过程 6、APP各种Context访问资源的唯一性详解 7、Context的内存泄露 一、前言: Contextandroid 系统中的地位不言而喻,而且Context对于我们 Android开发同学来说,也并不陌生。 所以可以这样说,Context是维持Android程序中各个组件能够正常工作的一个核心功能类。 上面说了Context是一个抽象类,那它的具体子类都有哪些?我们来一起看一下他的族谱。 /p/Android-Context.html https://developer.android.com/reference/android/app/Activity.html http://www.jianshu.com

    60830

    AndroidContext的使用方法详解

    AndroidContext的使用方法详解 概要: Context字面意思是上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似 很多方法需要通过 Context才能识别调用者的实例:比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button 的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型 Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。 下面介绍Context的一些get方法,通过这些get方法可以获取应用环境全局信息: 1.public abstract Context getApplicationContext () Return

    28251

    相关产品

    • 直播 SDK

      直播 SDK

      直播 SDK 是腾讯云直播服务在移动场景的延伸,集成了腾讯云直播的推 / 拉流、主播观众互动连麦、主播跨房 PK 等能力,提供包括 iOS、Android、小程序、Web 等多种接入方式,为您提供针对移动场景的高质量直播服务,快速满足手机直播的需求。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券